亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
123下一頁(yè)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
查看: 7487 | 回復(fù): 27
打印 上一主題 下一主題

求大神,C語(yǔ)言中編譯時(shí)判斷某個(gè)變量是否為常量 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-04-07 18:02 |只看該作者 |倒序?yàn)g覽
比如char *p="abcd";
這個(gè)p指向的內(nèi)存中的內(nèi)容是abcd,這個(gè)abcd在常量區(qū),是不能修改的
而char p[]="abcd"和用malloc申請(qǐng)的是可以修改的
上面我說(shuō)的都是廢話(huà)了
現(xiàn)在問(wèn)題是,我想在編譯時(shí)判斷p指向的內(nèi)存是否能被修改,以便萬(wàn)一調(diào)用了某些函數(shù)(這些函數(shù)可能會(huì)修改內(nèi)存中的值),但是編譯時(shí)一般不會(huì)報(bào)錯(cuò),而在運(yùn)行時(shí)才會(huì)報(bào)錯(cuò):access violation。
求大神指教,小弟問(wèn)題就是:如何在編譯時(shí),判斷某個(gè)指針指向的內(nèi)存中的內(nèi)容為只讀的,說(shuō)白了就是判斷某個(gè)指針是上述三種方法中的哪一種方法定義的。不然運(yùn)行時(shí)報(bào)錯(cuò),代價(jià)太大。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2012-04-07 18:06 |只看該作者
自己頂一下,別沉啊~求大神{:3_186:}

論壇徽章:
5
未羊
日期:2014-08-07 15:42:10雙子座
日期:2014-09-23 15:42:172015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:282022北京冬奧會(huì)紀(jì)念版徽章
日期:2015-08-10 16:30:32
3 [報(bào)告]
發(fā)表于 2012-04-07 18:07 |只看該作者
編譯只是判斷程序是否有語(yǔ)法錯(cuò)誤

論壇徽章:
5
未羊
日期:2014-08-07 15:42:10雙子座
日期:2014-09-23 15:42:172015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:282022北京冬奧會(huì)紀(jì)念版徽章
日期:2015-08-10 16:30:32
4 [報(bào)告]
發(fā)表于 2012-04-07 18:09 |只看該作者
只有程序運(yùn)行時(shí),內(nèi)存中的內(nèi)容才有可能被修改

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2012-04-07 18:13 |只看該作者
回復(fù) 3# 光速


    那我可以在定義變量時(shí)用宏加到我的常變量列表里面吧,在調(diào)用時(shí)判斷?

論壇徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辭舊歲徽章
日期:2015-03-03 16:54:152015年亞洲杯之約旦
日期:2015-02-11 14:38:37雙魚(yú)座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29雙子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亞洲杯之科威特
日期:2015-04-17 16:51:51
6 [報(bào)告]
發(fā)表于 2012-04-07 18:41 |只看該作者
gcc有個(gè)內(nèi)置的函數(shù)可以做這個(gè)(具體名字記不清了),但我覺(jué)得這個(gè)需求的合理性需要再考慮考慮。

論壇徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辭舊歲徽章
日期:2015-03-03 16:54:152015年亞洲杯之約旦
日期:2015-02-11 14:38:37雙魚(yú)座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29雙子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亞洲杯之科威特
日期:2015-04-17 16:51:51
7 [報(bào)告]
發(fā)表于 2012-04-07 18:43 |只看該作者
__builtin_constant_p

應(yīng)該是可以的,不過(guò)我沒(méi)試過(guò),只是在看代碼的時(shí)候遇到了。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2012-04-07 19:07 |只看該作者
回復(fù) 7# zhaohongjian000


    這個(gè)是什么?怎么用的?

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2012-04-07 19:09 |只看該作者
回復(fù) 6# zhaohongjian000


    確實(shí),也許這個(gè)需求不是必須的,只是想考慮下有沒(méi)有辦法解決的,是想寫(xiě)個(gè)庫(kù)的,以后調(diào)用萬(wàn)一忘記了,可能運(yùn)行時(shí)報(bào)錯(cuò)

論壇徽章:
36
子鼠
日期:2013-08-28 22:23:29黃金圣斗士
日期:2015-12-01 11:37:51程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-14 06:20:00CU十四周年紀(jì)念徽章
日期:2015-12-22 16:50:40IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-25 06:20:0015-16賽季CBA聯(lián)賽之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16賽季CBA聯(lián)賽之福建
日期:2016-04-07 11:25:2215-16賽季CBA聯(lián)賽之青島
日期:2016-04-29 18:02:5915-16賽季CBA聯(lián)賽之北控
日期:2016-06-20 17:38:50技術(shù)圖書(shū)徽章
日期:2016-07-19 13:54:03程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00
10 [報(bào)告]
發(fā)表于 2012-04-07 19:42 |只看該作者
本帖最后由 cokeboL 于 2012-04-07 19:45 編輯

自己寫(xiě)的話(huà),在main開(kāi)始前的地方(static可選) char const_addr;
main后面定義inline bool is_const(void *p){return ((void*)p<(void*)&const_addr)?1:0;};
比較地址,看該變量的地址是在那種變量的范圍內(nèi)
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP