第八章 C语言之预处理

8.预处理

8.1 文件包含

include指令用于包含指定头文件,用<>包含系统目录下的头文件,用""包含自定义的头文件

 #include <stdio.h>
 #include "my_header.h"

8.2 条件编译

常见的条件编译指令有#if、#ifdef、#ifndef等

示例1:用于跨平台代码采用不同逻辑

 // 不同系统平台采用不同路径的json文件
 #ifdef __linux__
 #ifndef A0_JSON_FILE
 #define A0_JSON_FILE "../share/A0-Correction-5.json"
 #endif
 #else
 #ifndef A0_JSON_FILE
 #define A0_JSON_FILE "./share/A0-Correction-5.json"
 #endif
 #endif

示例2:作为一个开关使用

 // USE_CHANNEL宏作为一个开关
 #if USE_CHANNEL
 #ifndef A0_CHANNEL
 #define A0_CHANNEL 10
 #endif
 #endif

8.3 宏定义

常见的宏定义指令有#define、#undef

 #define PI 3.1415926    // 定义宏常量PI
 ...
 #undef PI               // 取消PI的宏定义
 ...
 #define ADD(a,b) (a+b)  // 定义宏函数ADD
 ...

8.4 其它

#pragma字节对齐

 #pragma pack(1) 
 struct Example
 {
     char x1;
     short x2[5];
     float x3[7];
     long x4;
 };
 #pragma pack() 
阅读剩余
THE END