上一篇博客复习与回顾了extern的用法与知识点,于是参考<C和指针>第三章习题P49的第24题,发现课后答案与我自己在ubuntu上做的实验有冲突,记录下来
我把课后答案简化了一下,贴上代码
按照<C和指针课后答案>的说法,我的代码第7行与第14行的y分属不同作用域,所以是没有问题的,<C和指针>代码如下:
但是实实在在我们在ubuntu上看到了编译错误,正确的改法应该将第3行的注释去掉,将第14行注释掉,结果请见最后
root@ubuntu:/lianxi/lianxi_oj/extern/exception# gcc func.c main.c -m32
main.c:14:1: 错误: 对‘y’的静态声明出现在非静态声明之后
main.c:7:13: 附注: ‘y’的上一个声明在此
root@ubuntu:/lianxi/lianxi_oj/extern/exception#
1 #include <stdio.h>
2 #define PRINT(fmt...) printf(fmt)
3 in