extern int 和extern const int的区别?


示例1:


文件test.cpp

const int age = 30;

文件 main.cpp

#include <QCoreApplication>

extern const int age;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    printf("age = %d\n", age);

    return a.exec();
}

程序编译报错 , 如图:



原因

C++中被const修饰的全局变量默认只在文件内可见, 所以上述test.cppconst全局变量要在外部文件中被使用到, 必须添加extern声明, : extern const int age = 30;

 

  1. 对于非const的全局变量, 其默认在外部文件可见, 其前面添加extern 和不添加 extern都是一样的, 也可以这样认为默认为"extern", const全局变量默认是没有"extern", 要想在外部文件访问, 必须要显式的添加)

 

  1. 对于非const全局变量如果不想被外部文件访问, 那么在其前面添加static, 即可.

 

  1. 对于const全局变量, 如果前面不显式声明extern, 其默认就是不可被外部文件访问, : const static const效果一样.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值