格式:#开头,末尾不能有分号
#define 宏名 宏体
预编译是不做语法检查,用宏体代替宏名。
#undef 结束宏名作用域。
宏定义可以嵌套,但是不可以递归。
宏定义可以带参数如#define 宏名(参数)
eg:
#define ADD(a,b) a+b 最好加上括号 即(a+b)
否则可能在宏扩展的时候发生错误
带参宏定义可以实现函数功能,但是宏定义又和函数有一定区别
1.带参宏是在预编译时执行,而函数只有在程序执行时才运行。
2.带参宏无类型,函数需要定义参数类型
3.带参宏处理过程中不需要分配内存,函数需要
本文介绍了C语言中的宏定义,包括#define用于创建宏、#undef移除宏、宏定义的嵌套以及带参数的宏定义。强调了带括号的重要性以避免宏展开时的错误。同时对比了宏定义与函数的区别,如宏在预编译时执行,无类型且不分配内存,而函数则在运行时执行并需要指定参数类型。

200

被折叠的 条评论
为什么被折叠?



