>第 20 章 链接详解>定义和声明>extern和static关键字

churchmice firefoxelectric@gmail.com
2009-05-21 14:39:48

如果上面的例子写成extern int top = -1;则编译器会报错。

这个的本质原因是因为这个语句也是一个定义(definition)吧


宋劲杉 songjinshan@akaedu.org
2009-05-21 15:07:15

是的


linux_Ultra codycody23@gmail.com
2009-08-15 08:25:04

"Previous Linkage的定义是:这次声明的标识符具有什么样的Linkage取决于前一次声明,这前一次声明具有相同的标识符名,而且必须是文件作用域的声明,如果在程序文件中找不到前一次声明(这次声明是第一次声明),那么这个标识符具有External Linkage。"
--------------------------------------
"这前一次声明具有相同的标识符名,"这句话是不是有问题?“这前一次声明”是什么意思?


宋劲杉 songjinshan@akaedu.org
2009-08-15 12:09:31

比如
extern int i;
int i;

extern int i;是int i;的前一次声明,有什么不好理解的呢?


如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!