中易网

const volatile int i=10;C中行不

答案:3  悬赏:10  
解决时间 2021-02-19 16:06
const volatile int i=10;C中行不
最佳答案
这样定义volatile是无效的 const与volatile是一对矛盾体 一般的编译器都会优先于const!!
在linux下的测试:
main()
{
const volatile int i=10;

i=100; //这里赋值操作是不允许的
printf("i=%d\n",i );
}
gcc -Wall test.c
..
test.c:5: error: assignment of read-only variable `i' :为只读变量赋值错误
..
全部回答
可以的,表示是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。 我理解为人为的不可以被修改,例如直接给 i 赋值就是不可以的,但是如果被其他线程或者其他因素修改的话是可以的。
volatile准确的说不是变量而是说这个值有可能被修改但不起被用户而是系统、中断等引起的改变,属于信号变量比如if(a)执行1;if(a)执行2;如果a不声明volatile则编译器就会代码优化两个执行体放在一块同等处理,如果为volatile则编译器知道这个a可能在执行过程中随时被修改,故不进行合并
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
清华大学在自然杂志上发表一篇论文国家怎么奖
周六周日基金可以买卖吗
子亮高端婚礼影像会馆地址有知道的么?有点事
联想笔记本z475主板换英特尔主板?
注销了 淘宝联盟号以后怎么总是说 登录名必须
【急】今天晚上学生会纳新,我报了生活部,已
珍珍茶业我想知道这个在什么地方
单晶体与多晶体有什么区别?
dnf风卷流云成就怎么完成 风卷流云成就去哪里
什么输入法最好用又不占内存
录取方式有3种,武汉大学2016录取方式是哪种
啊字共几画?
无锡的暂住证、居住证、户口都是怎么说的啊?
酷我K1被手机忽略怎么办?用的是苹果手机
欧园北欧印象西北门(人行门)在哪里啊,我有事
推荐资讯
梦想世界冥想的问题
相亲男见完面只聊微信,没提见面!是怎么回事
男生为什么一天到晚要问女生你在干嘛啊?
德福源超市地址有知道的么?有点事想过去
狗狗鼻头有点褪色,什么原因导致的呢?
华为mate9保时捷怎么才能买上
国家电网鸡西虎林市电业局怎么去啊,有知道地
中国科学院大学MBA教育管理中心在什么地方啊
光明水族馆在什么地方啊,我要过去处理事情
十八斤等于多少克
耀莱成龙国际影城(奉化店)怎么去啊,我要去那
李二菜铺批零我想知道这个在什么地方
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?