C++知识——2、预处理、const、static与sizeof
程序员文章站
2022-03-10 07:52:42
...
这些都是在面试笔试中常见的,尤其是 static 和 sizeof。
1、#ifdef、#else、#endif 在程序中使用
...
#define DEBUG
int main()
{
...
#ifdef DEBUG
printf(...) //如果前面定义了名为DEBUG的预处理器常量,则在此处输出信息。
#endif
...
}
2、使用 #define 宏定义时需注意的地方
#include<std.h>
#define SQR(x) (x*x)
int main()
{
int a,b=3;
a=SQR(b+2);
printf("a=%d\n",a);
return 0;
}
显然此处SQR(x)是想获得x的二次方。但是由于:
宏定义展开是在预处理时期,也就是在编译之前。
所以此时b并未被赋值,此时的b只是个符号,因此在第7行SQR那一行代码被展开成:
a=(b+2*b+2); //值为11,而不是5的平方。
为了达到原来的目的,将SQR(x)改成:
#define SQR(x) ((x)*(x))
这样第7行成为:
a=((b+2)*(b+2)); //执行后,a=25