C語言中 不定義結構體變數求成員大小

2021-09-06 10:35:33 字數 480 閱讀 5257

所謂的求成員大小, 是求成員在該結構體中 用 sizeof(結構體名.結構體成員名) 求來的.

很多時候我們需要知道乙個結構體成員中的某個成員的大小, 但是我們又不需要定義該結構體

型別的變數(定義的話會讓人難以理解, 又沒有實際的作用, 幹嘛要定義?).

考慮可以用指標來反求, 比如有乙個 point 型別的指標 ppoint, 那麼:

sizeof(ppoint->x) 即為 x 成員的大小, 由於 sizeof 是在編譯時刻求值, 且 sizeof 不

會對其表示式求值計算, 只判斷型別(當然包含定義), 所以:此時的 ppoint 的值可以是任意的哦~~~

當然, 這個任意, 是為了突顯出 ppoint == null (0) 的情況, 話都說明了 ~~~

不定義結構體求成員大小的方式:

sizeof( ( (結構體名*)0 )->成員名 )

女孩不哭 @ 2013-06-23 14:38:58 @

C語言中 不定義結構體變數求成員大小

所謂的求成員大小,是求成員在該結構體中 用 sizeof 結構體名.結構體成員名 求來的.很多時候我們需要知道乙個結構體成員中的某個成員的大小,但是我們又不需要定義該結構體 型別的變數 定義的話會讓人難以理解,又沒有實際的作用,幹嘛要定義?考慮可以用指標來反求,比如有乙個 point 型別的指標 p...

C語言中結構體變數的定義及引用

一 結構體變數的定義 1.結構體型別與結構體變數分開定義 一般形式如下 struct 結構體名 結構體變數名 eg struct student student1,student2 關鍵字struct要與結構體名student一起使用,共同構成結構體型別名 2.結構體型別與結構體變數同時定義 一般形...

求教高手C 語言不定義結構體可以呼叫結構體指標

今天聽老師說專家級人物可以在c語言中定義乙個結構體不使用結構體指標,但是可以使用符號 且編譯器可以編譯通過。例如 struct stu 如果我們要訪問結構體內容,一般如下兩種方法 struct stu p struct stu p1 定義結構體變數p,引用形式為 p.number 10 定義指標變數...