[C언어] 전처리기
1. 파일 포함 전처리기
- #include는 전처리기에서 가장 많이 사용되는 문법
- 특정한파일을 라이브러리로서 포함시키기 위해 사용
- #include 구문으로 가져 올 수 있는 파일에는 제약이 없다.
#include<파일 이름>
- 시스템 디렉토리에서 파일을 검색
- 운영체제마다 시스템 디렉토리가 존재하는 경로가 다를 수 있음
- 대표적으로 stdio.h와 같은 헤더 파일들이 시스템 디렉토리에 존재
C언어 컴파일러를 구축하게 되면 <stdio.h>, <stdlib.h> 등 다양한 라이브러리들이 우리의 컴퓨터 내의 시스템 디렉토리에 포함이 되는데 거기에서 파일을 검색해서 프로그램상에 띄워준다.
#include"파일 이름"
- 현재 폴더에서 파일을 먼저 검색
- 만약 현재 폴더에 파일이 없다면 시스템 디렉토리에서 파일을 검색
2. 메크로 전처리기
- 프로그램 내에서 사용되는 상수나 함수를 매크로 형태로 저장하기 위해 사용
- #define 문법을 사용해 정의할 수 있음
- #define 문법은 소스코드의 양을 획기적으로 줄이는 데 도움
#define PI 3.1415926535
int main(void) {
int r = 10; // 원의 반지름
printf("원의 둘레: %.2f\n", 2 * PI * r);
system("pause");
return 0;
}
#define POW(x) (x * x)
int main(void) {
int x = 10;
printf("x의 제곱: %d\n", POW(x));
system("pause");
return 0;
}
- 인자를 가지는 매크로 전처리기
#define ll long long
#define ld long double
int main(void) {
ll a = 23465390234;
ld b = 134.5939;
printf("%.1f\n", a * b);
system("pause");
return 0;
}
3. 조건부 컴파일
- #ifndef (if not define)
- #endif (end if)
#ifndef _TEMP_H_
#define _TEMP_H_
int add(int a, int b) {
return a + b;
}
#endif
#ifndef로 헤더파일 정의 시
⬇ 아래와 같이 헤더파일이 중복되어 include되더라도 정상 작동됨
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include "temp.h"
#include "temp.h"
int main(void) {
printf("%d\n", add(5, 3));
system("pause");
return 0;
}
4. 파일 분할 컴파일
main.c C언어 파일
#include <stdio.h>
#include "temp.h"
int main(void) {
printf("%d\n", add(50, 30));
system("pause");
return 0;
}
temp.h 헤더파일
: 함수에 대한 정의만
#ifndef _TEMP_H_
#define _TEMP_H_
int add(int a, int b);
#endif
temp.c C언어 파일
: temp.h 파일 정의
#include "temp.h"
int add(int a, int b) {
return a + b;
}
Author And Source
이 문제에 관하여([C언어] 전처리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seonyoung53/C언어-전처리기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)