-1
我有如下编译问题。头文件abc.h
包含在abc.c
中。为什么这是相冲突的类型声明?
在头文件中,我有这个
extern char **foo;
在源文件中
,我有这个
char *foo[] = { ".mp3", ".mp4" };
但我从GCC得到一个编译错误:
abc.c:23:7: error: conflicting types for ‘foo’
In file included from abc.c:18:0:
abc.h:64:15: note: previous declaration of ‘foo’ was here
为什么我得到这个错误?
@KingWeeWee事情在函数声明中的工作方式不同:-) – cnicutar
我的意思是,char * p与char [] p相同。好的,谢谢 – KingWeeWee
@KingWeeWee:你错了,他们不是同一类型。当编译器看到一个外部符号的类型为“未指定大小的X数组”时,它实际上要链接的是该数组的地址,该数组的起始地址与其第一个元素相同。不过,该类型与指向该第一个元素的指针的类型不同。 –