2
的操作數的名稱當你定義像下面結構爲的sizeof
typedef struct num {
int a;
int b;
} A;
然後sizeof(A)
有效的結構,但sizeof(num)
不是。任何人都可以解釋爲什麼sizeof運營商不接受num
?
的操作數的名稱當你定義像下面結構爲的sizeof
typedef struct num {
int a;
int b;
} A;
然後sizeof(A)
有效的結構,但sizeof(num)
不是。任何人都可以解釋爲什麼sizeof運營商不接受num
?
由於num
自身不構成在C語言的類型(僅struct num
或其的typedef A
構成類型)。
sizeof unary-expression
sizeof (type-name)
即num
既不是類型也不是一元表達式:所以,sizeof
作爲其操作數不是在任一種形式的,它的定義爲失敗。
因此,sizeof(struct num)
或sizeof(A)
是好的,但sizeof(num)
不是。
'num'是一個標籤,而不是一個類型。所以'sizeof(num)'是無效的,但'sizeof(struct num)'很好。 – Michael
@unwind感謝您的評論!我認爲大小是一個函數... – SD11
@unwind在這種情況下,'sizeof A'不起作用。由於'A'是一種類型,'sizeof'需要括號。 –