기능별로 파일을 나눠 프로그래밍하는 것
예를 들면 계산기에서 필요한 기능 (더하기, 빼기, 나누기)을 나눠관리하는 것
>> 유지 보수성이 좋아진다.
>> 이식성과 확장성이 좋아진다
파일을 나누더라도 완전히 독립 되는 것이 아님
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
'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 |