宏定义的实质
再牛逼的宏定义也是机械的替换
宏定义结束不需要 ;
(分号)
#define PI 3.14
终止宏定义生效范围
#define PI 3.14 代码块.. #undef PI
不带参数的宏定义
#include <stdio.h> #define PI 3.14 int main(){ int r = 6; printf("%d 半径圆的面积 %.5f",r,PI * r * r); return 0; }
带参数的宏定义
比较两数字大小
#include <stdio.h> #define MAX(x, y) ((x) > (y)) ? (x) : (y) // 这些括号是为了保证 判断正确 int main() { int x = 6, y = 10; printf("%d %d -max-> %d", x, y, MAX(x, y)); return 0; }
求平方 (有 BUG )
宏定义只是机械性替换,所以不能代替函数
#include <stdio.h> #define SQUARE(x) x * x int main() { int x = 6; printf(" %d -平方-> %d\n", x, SQUARE(x)); printf("%d + 1 -平方-> %d\n", x, SQUARE(x + 1)); return 0; }
上一篇
【C语言】结构体
【C语言】结构体
下一篇
【C语言】动态内存管理
【C语言】动态内存管理
版权声明:《 【C语言】高级宏定义 》为明妃原创文章,转载请注明出处!
最后编辑:2020-12-23 10:12:58