#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 //编译器就会把这个字符串认为是一个已经定义的标识符
|