C语言中宏定义的方法
时间:2017-9-8
C语言源程序中允许用一个标识符来表示一个字符串,称为宏.被定义为宏的标识符称为宏名,在编译预处理时,对程序中所有出现的宏名,都用宏定义中的字符串替换,这称为宏展开,宏定义由宏定义命令完成,宏展开由预处理程序自动完成.
在C语言中,宏分为不带参数的宏和带参数的宏两种,不带参数的宏,其宏名后不带参数,定义的一般形式为
#define 标识符 字符串
其中"#"是预处理命令的开始标识,表示这是一条预处理命令:"define"为宏定义命令:"标识符"是所定义的宏名;"字符串"为宏名将要被替换的字符串,可以是常量字符串,表达式字符串,格式字符串等.
对程序中反复使用的常量,表达式或字符串,常常进行宏定义,这样编写简单,不易出错,而且当需要改变某个常量,表达式或字符串的值时,只需要改"#define"命令行中的字符串一处即可,实现一改全改.
C语言允许宏带参数,宏定义中的参数称为形式参数,在上使用宏的语句中的参数称为实际参数,在预编译时,带参数的宏不但要进行宏展开,而且要用实参去形参,带参数的宏定义的一般形式为
#define 宏名(形参表) 字符串
在字符串中可以含有形参表中的各个形参,在源上使用带参数的宏的一般形式为:宏名(实参表)