3 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
它們不能保證大小相同,盡管在我經(jīng)驗(yàn)豐富的平臺(tái)上通常都是這樣。
C 2011 在線選秀:
6.2.5類型
...
28指針void
應(yīng)具有與指向字符類型的指針相同的表示和對(duì)齊要求。48)類似地,指向兼容類型的合格或非限定版本的指針應(yīng)具有相同的表示和對(duì)齊要求。所有指向結(jié)構(gòu)類型的指針都應(yīng)具有相同的表示和對(duì)齊要求。所有指向union類型的指針都應(yīng)具有相同的表示和對(duì)齊要求。指向其他類型的指針不需要具有相同的表示或?qū)R要求。
48)相同的表示和對(duì)齊要求意味著可互換性作為函數(shù)的參數(shù),函數(shù)的返回值和聯(lián)合的成員。

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
不必要。該標(biāo)準(zhǔn)不保證sizeof(double*) == sizeof(int*)
。例如,假設(shè)處理器具有兩個(gè)具有不同寬度的地址總線(如在一些哈佛架構(gòu)處理器上),它可以具有不同大小的指針。

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
請(qǐng)注意C標(biāo)準(zhǔn)所說的內(nèi)容 - 正如John Bode所引用的那樣。另請(qǐng)注意,C標(biāo)準(zhǔn)根本沒有說明函數(shù)指針的大小。
POSIX標(biāo)準(zhǔn)規(guī)定了一些額外的要求:
2.12.3指針類型
所有函數(shù)指針類型應(yīng)與void指向的類型指針具有相同的表示形式。將函數(shù)指針轉(zhuǎn)換為void *不得改變表示。這種轉(zhuǎn)換產(chǎn)生的void *值可以使用顯式轉(zhuǎn)換轉(zhuǎn)換回原始函數(shù)指針類型,而不會(huì)丟失信息。
注意:ISO C標(biāo)準(zhǔn)不要求這樣,但它是POSIX一致性所必需的。
- 3 回答
- 0 關(guān)注
- 405 瀏覽
添加回答
舉報(bào)