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

Chinaunix

標(biāo)題: const 全局變量 [打印本頁]

作者: OnlyForStudy    時間: 2011-09-09 15:40
標(biāo)題: const 全局變量
我的測試代碼是這樣的
const int max = 23;
int main()
{
     int a[max];
     return 0;
}

這樣它會報 max 非法

如果將max定義放到main函數(shù)里面就沒問題

本人對const 關(guān)鍵字還不是太熟悉   想請問下大家有沒有詳細介紹的文檔
作者: OnlyForStudy    時間: 2011-09-09 15:48
怎么都沒人啊
作者: bruceteen    時間: 2011-09-09 15:50
那只能換編譯器了吧。!
對于 C++,它應(yīng)該是對的,因為這里 max 是個常量;
對于 C,max不是個常量,但C允許變長數(shù)組,也就是即使不用const來修飾,代碼也是對的。
朋友,換編譯器吧,算我求你了^_^
作者: linternt    時間: 2011-09-09 16:05
對于GCC來說,這好像不是一個問題!
作者: zylthinking    時間: 2011-09-09 16:16
本帖最后由 zylthinking 于 2011-09-09 16:19 編輯

我在懷疑是不是和 #define max(x, y) (x > y ? y : x) 混了, 之所以在函數(shù)內(nèi)部沒問題, 估計是作用域在函數(shù)內(nèi)部, 被優(yōu)先了, 而放在外面, 兩個都是global的, 于是完蛋了
只是猜啊

好吧, 仔細想想, 肯定猜錯了
作者: zylthinking    時間: 2011-09-09 16:18
確實對gcc來說, 不是問題, mac下驗證
作者: OnlyForStudy    時間: 2011-09-09 16:31
可能吧   我用的是aCC 編譯的
作者: 毛xx總理    時間: 2011-09-09 16:34
關(guān)注
作者: snowboy9859    時間: 2011-09-10 14:40
回復(fù) 1# OnlyForStudy


    const int max = 23;
     int a[max];

在c中,max總是占用內(nèi)存的某個地方,所以c編譯器不知道它在編譯時的值。
作者: banggou    時間: 2011-09-12 00:00
那只能換編譯器了吧。!
對于 C++,它應(yīng)該是對的,因為這里 max 是個常量;
對于 C,max不是個常量,但 ...
bruceteen 發(fā)表于 2011-09-09 15:50



   呵呵 估計編譯器問題吧
作者: gothicane    時間: 2011-09-13 10:50
支持C99的編譯器就沒問題吧
作者: 留痕之雁    時間: 2011-09-13 11:25
{:3_188:}{:3_188:}作用域什么,只能看報錯信息了




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2