芯源半导体CW32
直播中

丁冬芹

8年用户 1382经验值
私信 关注
[经验]

#define预编译的指令

#define预编译指令
顾名思义,这个指令的含义是“定义”,大家可以把该指令视为一种文本的替换。详细在下面代码展示


[list=1]
[*]//使用该指令定义了一个数
[*]#define PI 3.14
[*]//那么大家在后面的调用中就是直接使用PI就可以了
[*]float Circle_Area = PI * r*r;
[*]//实际在编译器编译的时候就会把字符PI替换成3.14,所以在编译器眼中实际上上述等式的样子如下
[*]float CirCle_Area = 3.14 * r*r;
[*]
[*]//再例如有时候大家喜欢写一些宏定义“函数”
[*]#define MIN(x,y)(x>y)?x:y;   //两个数比大小
[*]
[*]//在程序猿们的眼里,代码编写如下
[*]uint8_t num_A = 3;
[*]uint8_t num_B = 6;
[*]uint8_t min_num;
[*]min_num = MIN(num_A,num_B);
[*]
[*]//但是在编译器的眼中这段代码如下
[*]min_num = (num_A

更多回帖

发帖
×
20
完善资料,
赚取积分