[C言語]プリプロセッサ
1.ファイルプリプロセッサ
include構文にインポートできるファイルには制約はありません.
C言語コンパイラ構築時
#include“ファイル名”
2.化粧前プロセッサー
#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 _TEMP_H_
#define _TEMP_H_
int add(int a, int b) {
return a + b;
}
#endif
#ifndefを使用してヘッダファイルを定義する場合重複するヘッダファイル(下図のように)が正常に動作する
#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;
}
Reference
この問題について([C言語]プリプロセッサ), 我々は、より多くの情報をここで見つけました https://velog.io/@seonyoung53/C언어-전처리기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol