C/C++中#define宏定义的作用域

#include <iostream>
using namespace std;
void t(void)
{
    #define a 10
}

int main()
{
   cout << a<<endl;
   return 0;
}

如上代码编译,打印输出结果为10。由此可见#define的作用域是文件作用域,在定义之后的位置使用都有效。改变其作用域可在后面加#undef。如下

#include <iostream>
using namespace std;
void t(void)
{
    #define a 10
    #undef
}

int main()
{
   cout << a<<endl;
   return 0;
}

编译运行报错,加#undef使其作用域变为代码块作用域

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页