欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++知识——2、预处理、const、static与sizeof

程序员文章站 2022-03-10 07:52:42
...

这些都是在面试笔试中常见的,尤其是 staticsizeof

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
相关标签: 知识点