#define预编译指令
顾名思义,这个指令的含义是“定义”,大家可以把该指令视为一种文本的替换。详细在下面代码展示
//使用该指令定义了一个数
#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<num_B)?num_A:num_B;
//而如果是仅仅是做了一个定义,它并不是毫无意义的,编译器会把这个定义作为一个标识符暂时存放,表明该字符已经进行过了定义声明。
#define FUNC_ENABLE //编译器就会把这个字符串认为是一个已经定义的标识符
|