beginning-c-nine

在程序进行通常的编译之前先对程序中的这些特殊命令进行预处理,再由编译程序对预处理后的源程序进行通常的编译处理,得到可供执行的目标代码

预处理、编译、连接

C提供的预处理功能主要有三种1、宏定义2、文件包含3、条件编译 均以#开头

9.1 宏定义

9.1.1 不带参数的宏定义

1
2
#define 标识符 字符串
#define PI 3.1415926

9.1.2 带参数的宏定义

1
2
3
4
5
6
7
带参数的宏定义不是进行简单的字符串替换,还要进行参数替换
#deine 宏名(参数表) 字符串

#define S(a,b) a*b

area = S(3,2);
area = 3 * 2;

9.2 文件包含处理

1
2
3
4
5
6
#include "文件名"//系统先在用户当前目录中寻找要包含的文件,若找不到再按照标准方式查找
#include <文件名>//系统存放C库函数都文件的目录中寻找要包含的文件,成为标准方式

自己的用"",系统的用<>

包含了之后就是一个文件了

9.3 条件编译

一般情况下,源程序中所有行都参加编译,但有时希望程序中一部分内容只在满足一定条件下才进行编译,也就是对这一部分指定编译的条件,这就是条件编译

形式:

1
2
3
4
5
6
7
8
9
10
11
#ifdef 标识符
程序段1
#else
程序段2
#endif

#ifdef COMPUTER_A
#define INTEGER_SIZE 16
#else
#define INTEGER_SIZE 32
#endif