摘要:
1 #include 2 3 typedef union _A{ 4 int i; 5 char c[2]; 6 }A; 7 8 A g_a; //266 9 10 int main(){11 static A s_a; // 26612 A a_a;13 14 s_a.c[0] = 10;15 s_a.c[1] = 1;16 17 g_a.c[0] = 10;18 g_a.c[1] = 1;19 20 a_a.c[0] = 10;21 a_a.c[1] = 1;22 23 printf("%... 阅读全文
posted @ 2014-03-25 11:20
kongmeng
阅读(178)
评论(0)
推荐(0)
摘要:
从编译原理上来说,声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。 对于下面的两句代码: void Func() { int a; int b=1; a=0; } 对于第一行代码,编译器不会做任何事,它不会为它在栈中分配一点东西,直到第三句,a=0;时,编译器才会将其压入栈中。而对于int b=1;这一句,编译器就会生成一条指令,为它赋值。如果反汇编,看到的代码可能是这样的: push 1; push 0; 当然,并不一定编译器就会样做,也有可能在声明int a时,编译器就会把一个废值入栈,到第三条再为其赋值,这要看编译器的具体取舍,.. 阅读全文
posted @ 2014-03-25 10:02
kongmeng
阅读(270)
评论(0)
推荐(0)

浙公网安备 33010602011771号