三种预处理功能
C++提供的编译预处理功能主要有以下三种:
1、宏定义
2、文件包含
3、 条件编译
在C++中,我们一般用const定义符号常量。很显然,用const定义常量比用define定义常量更好。
使用宏定义注意点
在使用宏定义时应注意的是:
(a) 在书写#define 命令时,注意<宏名>和<字符串>之间用空格分开,而不是用等号连接。
(b) 使用#define定义的标识符 不是变量,它只用作宏替换,因此不占有内存。
(c) 习惯上用大写字母表示<宏名>,这只是一种习惯的约定,其目的是为了与变量名区分,因为变量名通常用小写字母。如果某一个标识符被定义为宏名后,在取消该宏定义之前,不允许重新对它进行宏定义。取消宏定义使用如下命令:
#undef<标识符>
其中,undef是关键字。该命令的功能是取消对<标识符>已有的宏定义。被取消了宏定义的标识符,可以对它重新进行定义。 宏定义可以嵌套,已被定义的标识符可以用来定义新的标识符。例如:
#define PI 3.1415
C/C++宏定义最佳实践与陷阱

本文详细介绍了C/C++的预处理功能,尤其是宏定义的使用。强调了用const定义常量优于宏定义,并提醒在宏定义中注意空格、参数使用和嵌套等问题。带参数的宏定义与函数类似,但需留意宏替换可能导致的错误,例如未适当使用括号导致的计算错误。正确使用宏定义可以提高代码效率,但不当使用则可能引入问题。
最低0.47元/天 解锁文章
1474

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



