先来看一个C++程序(.cpp):
- #include <stdio.h>
-
- int fun(int x)
- {
- return x * x;
- }
-
- int a = fun(10);
-
- int main()
- {
- printf("a = %d\n", a);
- return 0;
- }
居然得出了100的结果, 吓我一跳。
再看C程序(.c):
- #include <stdio.h>
-
- int fun(int x)
- {
- return x * x;
- }
-
- int a = fun(10);
-
- int main()
- {
- printf("a = %d\n", a);
- return 0;
- }
编译错误, 符合我的预期。
上述编译器都是VC++6.0. 有兴趣的读者可以深究一下。