今天在看《linux C编程一站式学习》时,看到第7章结构体第3节,看到一个enum的程序范例,自己编程序测试时发现了一个问题,如下:
enum coordinate_type { RECTANGULAR = 1, POLAR };//定义一个全局枚举类型
struct complex_struct {int RECTANGULAR;}z;//定义一个全局结构体变量
int main(void)
{
enum coordinate_type y;//定义一个枚举
int RECTANGULAR=y;
printf("%d %d\n", RECTANGULAR, z.RECTANGULAR);
return 0;
}
这段程序的输出是:134513721 0
作一点小小的改动,将枚举变量y变成全局变量:
enum coordinate_type { RECTANGULAR = 1, POLAR }y;//定义一个全局枚举变量
struct complex_struct {int RECTANGULAR;}z;//同上
int main(void)
{
int RECTANGULAR=y;
printf("%d %d\n", RECTANGULAR, z.RECTANGULAR);
return 0;
}
这段程序的输出是:0 0
有没有人可以解释输出这个结果的原因呢?