C语言中宏名不是必须用大写字母表示,习惯上宏名用大写字母表示,以便于与变量区别。但也允许用小写字母。
宏定义表示数据类型,使书写方便。例如: #define STU struct stu在程序中可用STU作变量说明: STU body[5],*p;#define INTEGER int。
在程序中即可用INTEGER作整型变量说明: INTEGER a,b;
应注意用宏定义表示数据类型和用typedef定义数据说明符的区别。
宏定义只是简单的字符串代换,是在预处理完成的,而typedef是在编译时处理的,它不是做简单的代换, 而是对类型说明符重新命名。被命名的标识符具有类型定义说明的功能。
扩展资料:
宏定义是由源程序中的宏定义命令完成的。
宏代换是由预处理程序自动完成的。在c语语中,“宏”分为有参数和无参数两种。
1、无参宏的宏名后不带参数。其定义的一般形式为: #define 标识符 字符串 其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。
“definC语言允许宏带有参数。在宏定义中的参数称为形式参数, 在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开, 而且要用实参去代换形参。
2、带参宏定义的一般形式为: #define 宏名(形参表) 字符串 在字符串中含有各个形参。
”e”为宏定义命令。 “标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。
参考资料来源:百度百科--宏定义