0
Code 1
#include <stdio.h>
int T;
int main()
{
struct T{ double x;};
printf("%d", sizeof(T));
return 0;
}
輸出:4混淆關於變量的範圍用C
Code 2
#include <stdio.h>
struct T{ double x;};
int main()
{
int T;
printf("%d", sizeof(T));
return 0;
}
輸出:4
對於code 1
,我認爲輸出是全局變量(int T
)的大小,這就是爲什麼它給4
但對於code 2
,它給輸出4,根據全局變量的邏輯,它應該是輸出8 struct T{ double x;};
。
這裏,全局變量的概念是不正確的 - 我想。
誰能請解釋一下這是什麼原因輸出樣子?
隨着'T'一個typedef,就不會有編譯錯誤。這兩個名字將在不同的(嵌套)範圍內;內部名稱將是'printf()'語句中使用的名稱(帶有'sizeof'運算符)。 –