locals.c revision 77ed6142daed1e068fbda64405d0de9845e40e1a
1int a; 2 3int f() { 4 int a; 5 // Undefined variable b 6 // printf("f 0: a = %d b = %d\n", a, b); 7 printf("f 0: a = %d\n", a); 8 a = 2; 9 printf("f 1: a = %d\n", a); 10} 11 12int g(int a) { 13 printf("g 0: a = %d\n", a); 14 a = 3; 15 printf("g 1: a = %d\n", a); 16} 17 18int h(int a) { 19 // int a; // gcc 4.3 says error: 'a' redeclared as different kind of symbol 20 21 printf("h 0: a = %d\n", a); 22 a = 4; 23 printf("h 1: a = %d\n", a); 24} 25 26// Already defined global 27// int h() {} 28int globCheck() { 29 fprintf(stdout, "globCheck()\n"); 30} 31 32int fwdCheck() { 33 b(); 34 // Undefined forward reference 35 // c(); 36} 37 38int b() { 39 printf("b()\n"); 40} 41 42int nested() { 43 int a; 44 printf("nested 0: a = %d\n", a); 45 a = 50; 46 printf("nested 1: a = %d\n", a); 47 { 48 int a; 49 printf("nested 2: a = %d\n", a); 50 a = 51; 51 printf("nested 3: a = %d\n", a); 52 } 53 printf("nested 4: a = %d\n", a); 54} 55 56int main() { 57 globCheck(); 58 fwdCheck(); 59 printf("main 0: a = %d\n", a); 60 a = 5; 61 printf("main 1: a = %d\n", a); 62 f(); 63 printf("main 2: a = %d\n", a); 64 g(77); 65 printf("main 3: a = %d\n", a); 66 h(30); 67 printf("main 4: a = %d\n", a); 68 nested(); 69 printf("main 5: a = %d\n", a); 70 return 0; 71} 72