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'运算符)。 –