关于《C专家编程》中数组和指针的一个问题
《C专家编程》的 第四章中,为了展现指针和数组的不同,作者举了一个例子:在一个文件中声明一个数组,然后在另一个文件中通过指针引用它,然后运行的时候会出现异常的结果。我是这样编写这个例子的程序:在test.c文件中
char a[3] = {1,2,3};
在main.c文件中
程序代码:
#include<stdio.h> int main(void){ extern char * a; printf("%d %d", a, a[0]); return 0; }
在fedora26上用gcc7编译,显示报错说类型冲突:
main.c:4:16: error: conflicting types for ‘a’
我以为是现代的编译器进化了,能够在编译阶段就能识别出类型不匹配的问题。于是又去找了turbo c++ 3来编译,结果还是提示类型不匹配,请问是不是我哪里弄错了呢,要怎么才能重现《C专家编程》中所说的那种异常的情况呢?
此问题已经解决,参照https://www.,同时编译多个文件即可重现书中所说的问题。
[此贴子已经被作者于2017-7-29 19:41编辑过]