C/C

모듈화 1

HicKee 2022. 10. 8. 23:18

기능별로 파일을 나눠 프로그래밍하는 것
예를 들면 계산기에서 필요한 기능 (더하기, 빼기, 나누기)을 나눠관리하는 것

>> 유지 보수성이 좋아진다.
>> 이식성과 확장성이 좋아진다

 

파일을 나누더라도 완전히 독립 되는 것이 아님

 

main.c

#include <stdio.h> //내부적으로 경로가 연결 (패스가 걸려있다.)
#include "add.h"   

//" " 의미는 main.c 와 같은 폴더내에 위치 한다

int main() {
	printf("%d\n", Add(5, 4));
}

add.c

#include "add.h"
/*
소스파일에서 헤더 파일을 include는 아무 문제도 없다 
하지만 헤더 파일에서 헤더파일을 include 하면 문제가 생길수도 있다.
*/

int Add(int a, int b) {
	return a + b;
}

add.h

//#pragma once

#ifndef __ADD_H__ //헤더 중복 선언 방지
//정의되지 않으면 #define __ADD_H__ 정의 해달라. if not define
#define __ADD_H__ //전처리기 컴파일러 처리 전에 처리해달라 

int Add(int a, int b);

#endif //반드시 #ifndef 로 시작하여 #endif로 끝나야한다.

#pragma once에 대하여

더보기

#pragma 가 표준이 아니라는 말은 오해이다.


#pragma 자체는 표준에서 정의된 전처리 지시어가 맞지만

그 뒤에 붙는 once 같은 것들은 표준이 아니다.

 

#pragma once 지시어를 지원하는 환경도 증가 되고 있지만 컴파일러마다 알아서 정의하도록 되어 있다. 


따라서 #pragma 지시어는 이식성이 좋지 않다고 볼 수 있다.

 

#pragma once의 unfixable

#pragma once vs include guards?

 

'C > C' 카테고리의 다른 글

파일 입출력  (0) 2022.10.11
모듈화 2 - 구조체  (0) 2022.10.08
구조체 1  (0) 2022.10.07
배열 2 - 출력  (0) 2022.10.06
gets() - 문자열 입력  (0) 2022.10.05