免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: hello|world
打印 上一主题 下一主题

[C] 请教: 怎样判断一个变量是只读的(const)? [复制链接]

论坛徽章:
0
41 [报告]
发表于 2011-02-18 13:12 |只看该作者
这个不知道!

论坛徽章:
0
42 [报告]
发表于 2011-02-18 14:31 |只看该作者
这个比较简单,可以通过检查该变量地址是否有可写属性
通过分析/proc/pid/maps文件可以得出

下面是实现 ...
dremi 发表于 2011-02-17 16:04

这也是个不错的方法~

论坛徽章:
0
43 [报告]
发表于 2011-02-18 16:48 |只看该作者
需不需要检查,要看具体的使用场景,某些时候还是很有必要,因为程序崩溃一般是不能够允许的。

论坛徽章:
0
44 [报告]
发表于 2011-02-20 22:09 |只看该作者
概念错了吧。
const 只是给编译器提供一些检查程序正确性的线索。不代表这个指针运行时指向的内存可不可写,现在没有哪个编译器给const指针分配只读内存吧,况且,那个指针也不必是只读的呀,比如是caller堆栈上的一块内存,在x86上是不可能为只读的。
当然判断变量所在的页面是否只读是可以做到的,但是肯定和const没关系。

论坛徽章:
0
45 [报告]
发表于 2011-02-26 10:44 |只看该作者
判断是否只读,在编译过程中由编译器进行.程序代码中不需要提供该功能.

如果你把一个只读变量当作参数放入你的可写参数,编译都过不了.

论坛徽章:
0
46 [报告]
发表于 2011-02-27 12:16 |只看该作者
除了char *外,const的变量不能传给非const参数啊。否则编译不过
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP