extern 定义_C++:const和mutable,volatile, extern

482a4ee6896f584dc6c28d2039657f0f.png

const 和 volatile是两个关键字。

其中const是内存被初始化之后,就不能修改它。

volatile则指的是,就算内存地址不变,程序本身不对这个变量进行修改,它也可能会改变。这是告诉编译器,不要进行某些优化。比如常量折叠,它会抹去某些变量,但这些变量可能是不同过程序改变的,这个时候,volatie告诉他不要再和么做。

还有一个变量叫mutable,这个函数的意思是就算这个东西是const,也可以被修改。

典型代表如下列结构所示:

struct data
{
   char name[30];
   mutable int accessed;
}

那么,如果我们初始化一个

const data veep = {"Claybourne Clodde",0 };,

那么它的作用是限定修改veep成员。

accessed++;

const 是一个不允许改变的值,它的作用域,通常只有一个文件。

对于C++来说,const在头文件中。那么如果在cpp中声明了一个头文件,包含了这个有const的头文件,const就会在cpp中可以使用。

如果在函数外使用const定义一个数,它是内部链接性的,就像是在前面加了一个static一样。

当然,如果有的人希望某个常量(const)是extern的,那就只有一个办法了,就是加个extern,在对应的地方,都声明一下。

唯一和常规的变量,比如全局变量不一样,这个东西,全局变量可以不加extern,但是const则必须加,这是规定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值