2010年12月16日

c extern 问题

摘要: 在一个源文件中定义 int a[5]={1,2,3,4,5}; int *b=a;在另外一个文件中写一下代码 extern int *a; extern int b[];printf("%d",a);打印出的值不是一个地址 ,而是a[0]的值一般我们使用extern的时候像下面这样肯定就没问题int aextern int a现在是int a[]extern int *a会不会编译器就理解为你引用的是int *a[]这个玩意,所以就会导致现在的结果求大侠解释对于所有的非局部变量, 如全局变量, 都需要链接的时候重定位,原因很简单, 在c 语言转换成代码的时候, 对于这个全局变量不知道要去访问那 阅读全文

posted @ 2010-12-16 18:36 MorningChen 阅读(281) 评论(0) 推荐(0) 编辑

导航