#include "文件名" // 先當前目錄,再包含目錄
#include <文件名> // 僅包含目錄
#define NUM ok
main() {
struct stu { int num; char *name; char sex; float score; } *ps;
ps = (struct stu*)malloc(sizeof(struct stu));
ps->num = 102; ps->name = "Zhang ping"; ps->sex = 'M'; ps->score = 62.5;
#ifdef NUM
printf("Number=%d\nScore=%f\n", ps->num, ps->score);
#else
printf("Name=%s\nSex=%c\n", ps->name, ps->sex);
#endif
free(ps);
}
#define NUM 無值也視為已定義。註釋掉該行則編譯 #else 分支。
#ifndef MY_HEADER_H
#define MY_HEADER_H
// 頭文件內容
#endif
配合宏定義實現編譯期配置切換,如調試/發布版本、平台差異處理。
#pragma once 或 #ifndef)#ifdef DEBUG 包裹,發布時不編入PROJECT_FEATURE_X)預處理器是 C 語言編譯期元編程的核心工具,善用可實現極大的靈活性與可移植性。