宏定义是用一个标识符来表示一个字符串,在宏调用中将用该字符串代替宏名。给程序员提供了便利,使程序更加清晰,便于阅读和理解,进一步提高了程序的运行效率,对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法,但是使用不慎会得到意外的结果。
宏是C语言中常用的编译预处理功能之一。在编程时,可以使用宏来代替一些常量或表达式,给程序员提供了便利,使程序更加清晰,便于阅读和理解,进一步提高了程序的运行效率。另外,在C语言中,宏是产生内嵌代码的唯一方法,并且可以定义带参数的宏,对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法。但是如果对宏命令本质理解不透彻,在使用时可能运行的结果与预期的结果就会大相径庭。下面具体介绍C语言中宏的使用(即宏定义、宏调用、宏展开)。
一、宏定义
在C语言源程序中,允许用一个标识符表示一个字符串,称为“宏”;被定义为宏的标识符称为“宏名”。
宏定义是由源程序中的宏定义命令完成的。该命令有两种形式:一种是无参数的宏定义;另外一种是带参数的宏定义。
(一)无参数的宏定义
无参数宏的宏名后不带参数。其定义的一般形式为:
#define标识符字符串
#是预处理命令的标志