| With regards to #5 in .0, 'foo' is only visible while that block is
active. I.e.:
(ladebug) run
[1] stopped at [void main(void):5 0x120001c90]
5 int zowie = 0;
(ladebug) whereis foo
"l280.cxx"`main`foo
"l280.cxx"`main`foo
(ladebug) which foo
Symbol not found in current scope
(ladebug) n
stopped at [void main(void):7 0x120001c94]
7 if (zowie) {
(ladebug)
stopped at [void main(void):13 0x120001cd4]
13 foo = -128;
(ladebug)
stopped at [void main(void):14 0x120001ce0]
14 cout << foo << endl;
(ladebug) which foo
"l280.cxx"`main`foo
(ladebug) print foo
-128
(ladebug) whatis foo
int foo
(ladebug) c
-128
Process has exited with status 0
(ladebug) W
1 #include <iostream.h>
2
3 void main()
4 {
5 int zowie = 0;
6
7 if (zowie) {
8 static int foo;
9 foo = 12;
10 cout << foo << endl;
11 } else {
12 static int foo;
13 foo = -128;
14 cout << foo << endl;
15 }
16 }
17
(ladebug)
The overload menu, or a complete function signature, takes care of #1.
#2, #3, #4 and #6 are still open.
|