void main(void)
{
unsigned int a,b,c,d; //這個定義會在整個main函數中?
SCON = 0x50; //串口方式1,允許接收
TMOD = 0x20; //定時器1定時方式2
TH1 = 0xE8; //11.0592MHz 1200波特率
TL1 = 0xE8;
TI = 1;
TR1 = 1; //啟動定時器
a = 5;
b = 6;
c = 7;
d = 8; //這會在整個函數有效
printf("0: %d,%d,%d,%d\n",a,b,c,d);
{ //復合語句1
unsigned int a,e; //只在復合語句1中有效
a = 10,e = 100;
printf("1: %d,%d,%d,%d,%d\n",a,b,c,d,e);
{ //復合語句2
unsigned int b,f; //只在復合語句2中有效
b = 11,f = 200;
printf("2: %d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f);
}//復合語句2結束
printf("1: %d,%d,%d,%d,%d\n",a,b,c,d,e);
}//復合語句1結束
printf("0: %d,%d,%d,%d\n",a,b,c,d);
while(1);
}
運行結果:
0:5,6,7,8
1: 10,6,7,8,100
2: 10,11,7,8,100,200
1: 10,6,7,8,100
0:5,6,7,8
結合以上的說明想想為何結果會是這樣。
示例程序下載