2010-02-07 85 views
-1

的sizeof(無效*)和sizeof(function_type_ptr *)平等的sizeof(無效*)和sizeof(function_type_ptr *)平等

必備的sizeof(無效*)和sizeof(function_type_ptr *)相等? C(C90,C99)標準是否需要?

function_type_ptr是指向函數的指針。

這個問題是關於標準要求,不是你自己的意見。請給從標準

+0

這是一個陳述或問題 – rerun 2010-02-07 00:24:06

+0

這是關於C語言標準及其解釋的問題。 – osgx 2010-02-07 00:27:13

+0

嗯。那麼「胖指針」呢?它們在「J.L.Steffen中介紹。在便攜式C編譯器中添加運行時檢查。 Software-Practice and Experience,22(4):305-316,1992。」和「T.M.Austin,S.E.Breach,and G.S.Sohhi.Efficient detection of all pointer and array access errors.For Proceedings of the SIGPLAN' 94 Conference on Programming Language Design and Implementation,1994.」 – osgx 2010-02-07 00:45:44

回答

4

答案是否定的。

6.2.6.1/2:除了位域之外,對象由一個或多個字節的連續序列組成,其數量,順序和編碼明確指定或實現定義。

沒有這樣的規範是爲函數/空指針完成的。

+0

標準規定指向不同類型的指針是不同的並且可以有不兼容的表示? – osgx 2010-02-07 00:58:03

+1

是的,它是這樣說的,除了少數情況。請參閱'6.2.5/27' – 2010-02-07 01:17:09

+0

對不起,我只以「新C標準。經濟和文化評論」的形式標準。本書使用全局編號的行。所以,請把這裏引用6.2.5/27 – osgx 2010-02-07 01:31:11

1

鏈接,節數和報價根據this post答案是否定的,有沒有保證,甚至sizeof(int*)相同sizeof(double*)

+0

你可以給標準及其部分的鏈接,它定義了它? – osgx 2010-02-07 00:31:39