第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

static char關(guān)鍵字在函數(shù)數(shù)組參數(shù)中的用途如“char s [static 10]”?

static char關(guān)鍵字在函數(shù)數(shù)組參數(shù)中的用途如“char s [static 10]”?

C
慕標(biāo)琳琳 2019-07-31 17:50:36
static char關(guān)鍵字在函數(shù)數(shù)組參數(shù)中的用途如“char s [static 10]”?在瀏覽一些源代碼時(shí),我遇到了這樣的函數(shù):void someFunction(char someArray[static 100]){     // do something cool here}通過一些實(shí)驗(yàn),似乎其他限定符也可能出現(xiàn)在那里:void someFunction(char someArray[const]){     // do something cool here}似乎只有[ ]在將數(shù)組聲明為函數(shù)的參數(shù)時(shí)才允許使用限定符。這些怎么辦?為什么功能參數(shù)不同?
查看完整描述

2 回答

?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

第一個(gè)聲明告訴編譯器someArray長度至少為 100個(gè)元素。這可以用于優(yōu)化。例如,它也意味著someArray永遠(yuǎn)不會為NULL。

請注意,C標(biāo)準(zhǔn)不要求編譯器診斷何時(shí)對函數(shù)的調(diào)用不滿足這些要求(即,它是靜默未定義的行為)。

第二個(gè)聲明只是聲明someArray(不是someArray's的元素?。閏onst,即你不能寫someArray=someOtherArray。它與參數(shù)相同char * const someArray。

此語法僅[]在函數(shù)參數(shù)列表中的數(shù)組聲明符的最內(nèi)層中可用,在其他上下文中沒有意義。

涵蓋上述兩種情況的標(biāo)準(zhǔn)案文載于C11 6.7.6.3/7(C99為6.7.5.3/7):

一個(gè)參數(shù)為“”類型的陣列“”的聲明,應(yīng)調(diào)整至“”合格指針為類型“”,其中類型限定符(如果有的話)的那些內(nèi)的指定[]該陣列類型的推導(dǎo)。如果關(guān)鍵字static也出現(xiàn)在數(shù)組類型派生的[]中,那么對于每次對函數(shù)的調(diào)用,相應(yīng)的實(shí)際參數(shù)的值應(yīng)提供對數(shù)組的第一個(gè)元素的訪問,其中元素的數(shù)量至少與大小表達(dá)。


查看完整回答
反對 回復(fù) 2019-07-31
?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊

關(guān)于這個(gè)主題:我想知道是否應(yīng)該考慮使用int foo(struct bar [static 1]);而不是int foo(struct bar *);作為不接受NULL指針的函數(shù)的簽名。(我知道gcc有一個(gè)替代的非標(biāo)準(zhǔn)語法來標(biāo)記這樣的函數(shù),以便編譯器可以發(fā)出警告..)

查看完整回答
反對 回復(fù) 2019-07-31
  • 2 回答
  • 0 關(guān)注
  • 1010 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號