没有合适的资源?快使用搜索试试~ 我知道了~
const和volatile.pdf
需积分: 8 0 下载量 91 浏览量
2021-11-16
14:04:45
上传
评论
收藏 950KB PDF 举报
温馨提示
试读
3页
const和volatile
资源推荐
资源详情
资源评论
2017/9/26 const和valotile - CSDN博客
http://blog.csdn.net/u010762216/article/details/45740043 1/3
转载 2015年05月15日 08:57:47
390 0
0
const和valotile
一.关键字const有什么含意?
我只要一听到被面试者说:“const意味着常数”,我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了
const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从
没有读到那篇文章,只要能说出const意味着“只读”就可以了。尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。(如果你
想知道更详细的答案,仔细读一下Saks的文章吧。)
如果应试者能正确回答这个问题,我将问他一个附加的问题:
下面的声明都是什么意思?
const int a;
int const a;
const int *a;
int * const a;
int const * const a ;
/******/
前两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个
意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着a是一个指向常整型
数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。如果应试者能正确回答这些问题,那么他就给我留下
了一个好印象。顺带提一句,也许你可能会问,即使不用关键字 const,也还是能很容易写出功能正确的程序,那么我为什么还要如此看重关
键字const呢?我也如下的几下理由:
?; 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果
你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清
理的。)
?; 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。
?; 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的
出现。
二:volatile影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,
(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。
例如:
volatile int i=10;
int j = i;
...
int k = i;
volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执行码会重新从i的地址读取数据
放在k中。
而优化做法是,由于编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次读的数据放在k中。而不是重新从i里面
读。这样以来,如果i是一个寄存器变量或者表示一个端口数据就容易出错,所以说volatile可以保证对特殊地址的稳定访问,不会出错。
/**********************
他的最新文章
计算机网络 三次握手 四次挥手
(/u010762216/article/details/47291137)
vector_construct_interator;delete为
什么能识别free内存大小
(/u010762216/article/details/46470087)
函数调用过程(反汇编分析)
(/u010762216/article/details/46379281)
const和valotile
(/u010762216/article/details/45740043)
在线课程
u010762216 (http://bl…
+关注
原创
2
粉丝
0
喜欢
0
码云
未开通
(https://gi
utm_sourc
什么是软件编程
一点点加盟费
关键词排名
软件编程
CSDN首页 (http://www.csdn.net?ref=toolbar) 学院 (http://edu.csdn.net?ref=toolbar) 下载 (http://download.csdn.net?ref=toolbar) 更多
下载 CSDN APP (http://www.csdn.net/app/?ref=toolbar)
写博客 (http://write.blog.csdn.net/postedit?ref=toolbar)
登录 (https://pass port.csdn.net/account/login?ref=toolbar) | 注册 (http://passport.csdn.net/account/mobileregister?ref=toolbar&action=mobileRegister)
(http://www.csdn.net)
(http://blog.csdn.net/u010762216)
编辑推荐 最热专栏
c语言valotile关键字 (/wqheartlife/art…
java中valotile (/ro_wsy/article/detail…
返回顶部
钢结构房屋
喜欢
收藏
评论
首页 (http://blog.csdn.net/) 全部
资源评论
quietqq
- 粉丝: 1
- 资源: 77
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功