c언어 모듈화 예제

C는 큰 문제를 해결하기 위해 C 프로그래밍 언어가 문제를 특정 책임을 처리하는 함수 또는 프로시저라는 작은 모듈로 나누기 때문에 구조화 된 프로그래밍 언어라고합니다. 전체 문제를 해결하는 프로그램은 이러한 기능의 모음입니다. 모듈은 기본적으로 구현 세부 정보를 공유하지만 외부 세계에서 숨기는 상호 관련된 파일 집합입니다. 어떻게 c에서 모듈식 프로그래밍을 구현할 수 있습니까? 기본적으로 C에 정의된 각 함수는 전역적으로 액세스할 수 있습니다. 이 작업은 함수구현이 정의된 헤더 파일을 포함하여 수행할 수 있습니다. 스택 데이터 형식을 선언하려는 동시에 데이터 구조를 포함한 구현을 사용자로부터 숨기려고 한다고 가정합니다. 먼저 일반 데이터 스택 데이터 형식과 스택 데이터 형식에서 지원하는 함수를 포함하는 stack.h라는 공용 파일을 정의하여 이 작업을 수행할 수 있습니다. 헤더 파일에서 우리는 많은 모듈이있는 더 큰 프로그램에서 정의 소스를 쉽게 식별 할 수있는 모듈의 이름으로 상수, 구조, 변수 및 함수의 정의만 포함해야합니다. C.

모듈형 프로그래밍에서 모듈화 구현에 대한 키워드 외형 및 정적 도움말은 인터페이스를 구현에서 분리하는 데 많은 실질적인 이점이 있습니다. 다음은 ANSI 표준 C 코드에서 이 작업을 수행하는 간단한 방법입니다. 중간 규모 또는 더 큰 C 프로그램을 어떻게 구성합니까? C 교과서는 거의 통찰력을 제공하지 않습니다. 그들은 작은 예를 사용하여 C의 기능의 박람회에 집중합니다. 예제는 일반적으로 단일 소스 코드 파일에 들어있습니다. 조직의 몇 가지 지침 원칙이 없으면 더 큰 C 프로그램은 이해하기 어렵고 유지 관리가 불가능해질 수 있습니다. 모듈식 프로그래밍은 복잡성을 관리하는 한 가지 방법입니다. 모듈식 프로그래밍은 관련 함수 세트를 모듈로 그룹화합니다. 모듈은 인터페이스와 구현으로 나뉩니다. 모듈은 인터페이스를 내보전합니다.

클라이언트 모듈은 모듈의 함수에 액세스할 수 있도록 인터페이스를 가져옵니다. 모듈의 구현은 비공개이며 클라이언트보기에서 숨김입니다. 프로그램을 모듈로 나누는 것은 사소한 프로그램을 설계하기 위한 강력한 조직 원칙입니다. 모듈은 추상화, 캡슐화 및 정보 숨김을 제공하므로 프로그램의 대규모 구조를 보다 쉽게 이해할 수 있습니다. 또한 임베디드 시스템 프로그래밍에서도 모듈을 신중하게 설계하면 소프트웨어 재사용이 촉진됩니다. 안타깝게도 C는 모듈식 프로그래밍을 명시적으로 지원하지 않습니다. 고풍스러운 모듈식 프로그래밍 언어는 니클라우스 워스의 Modula-2(및 -3)입니다. Modula와 같은 모듈식 언어에는 구현을 인터페이스에서 분리하고 모듈을 가져오기 위한 구문이 있습니다. 편리하게도 언어와 사전 프로세서 모두에서 C의 기능 중 일부는 Modula와 같은 기능을 제공하기 위해 공동 으로 선택할 수 있습니다. 이러한 기능은 일련의 규칙과 함께 C의 모듈식 프로그래밍을 실용적이고 효과적인 기술로 만듭니다. 모듈식 프로그래밍 프로그래머는 매일 추상화를 사용합니다.

추상화는 세부 사항을 무시하면서 무언가의 필수 기능을 강조합니다. 추상화에는 하드웨어, 소프트웨어 구성 요소 등이 포함될 수 있습니다. 예를 들어 직렬 포트는 포트에 바이트를 읽고 쓰는 함수 쌍으로 추상화될 수 있습니다. UART의 세부 사항, 그 레지스터 및 주소는 억제됩니다. 우리의 목적을 위해 모듈에 대한 인터페이스는 모듈의 함수를 추상화합니다. 인터페이스는 모듈의 기능과 모듈 사용 방법을 정의합니다. 모듈을 사용하는 프로그래머는 모듈의 인터페이스 정의를 봅니다. 이 인터페이스의 다른 쪽에는 모듈의 구현이 있습니다. 프로그래머는 인터페이스에 정의되지 않은 구현에서 아무 것도 사용하지 않아야 합니다.

모듈은 프로그래머가 구현의 내부에 액세스할 수 없도록 하는 것이 좋습니다. 이러한 정보 숨기기는 구현이 데이터의 무결성을 보호하고 모듈의 정확성을 보장할 수 있는 유일한 방법입니다.

Tento obsah bol zaradený v Nezaradené. Zálohujte si trvalý odkaz.