
宏定义是一种预编译功能. 预编译,也称为预处理,是准备工作的阶段. 处理#开头的指令,例如复制#include中包含的文件代码,#define宏定义替换,条件编译等.
使用宏定义的好处: 使用宏定义的好处: 可以提高程序的通用性和易读性,减少不一致,减少输入错误并方便修改. 例如,常数π有时在程序中的多个位置使用. 如果每次使用它都被重新定义,那将很麻烦且容易出错,因此我们可以使用π作为宏定义.
语法说明:
(1)宏名称通常使用大写字母
(2)宏的使用可以提高程序的性和可读性,减少不一致,减少输入错误并便于修改. 例如: 数组大小的通用宏定义

(3)预处理是在编译之前进行处理,编译工作的任务之一是语法检查,而预处理不进行语法检查.
(4)宏定义的末尾没有分号;
(5)宏定义写在函数的花括号之.
(6)您可以使用#undef命令终止宏定义的范围
(7)可以嵌套宏定义

(8)字符串“”将永远不包含宏
(9)宏定义不分配内存,变量定义分配内存.
定义:
#define 宏名 内容 #define kArrLen 10 // OC驼峰命名法:首字符为k,其他单词首字符大写 #define ARR_LEN 10 // C语言中的宏命名规范:所有字母大写,单词用下划线分隔
例如:

#define PI 3.1415926
我们可以使用PI代替3.1415926:
float r = 0.5;
float area = PI * r * r;
printf("area = %f\n", area);
在程序预编译阶段,PI将替换为3.1415926:
float area = 3.1415926 * r * r;

宏定义的内容非常简单易懂,但是有以下几点预防措施:
1. 因为宏定义只是简单的替换,所以如果宏定义的内容中有操作,则应在每个变量中添加括号,以免影响操作的优先级
例如: #define MUL(A,B)(A * B)
使用方法:
MUL(3 + 5, 5 + 6) //会替换成 3 + 5 * 5 + 6 = 34
我们想要(3 + 5)*(5 + 6)c预编译宏开关,因此在定义宏定义时:
#define MUL(A, B) ((A) * (B))
2. 请注意,宏定义后没有分号(;),这不是语句
3. 宏定义在程序编译的早期阶段就被替换了c预编译宏开关,此时程序还没有被编译
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-221451-1.html
必将来犯之敌全部葬送于南海海域
现在的媒体都成了杀猪刀