我没有自己挖掘,谢谢你的时间和回应。
在实际代码(专有嵌入式)中,标题extern
为#ifdef
',当.c
包含.h
时默认为不创建它们。当我设置此选项时,它确实产生了我想要的警告(实际上是错误)。
我有一个标题:
extern int array[10];
和源文件:
int array[2] = {0, 0};
显然这是不正确的。如何让编译器警告我?错误也是可以接受的。
我感兴趣的编译器是GCC(旧的,3.4.5)和TASKING(不是新的,2.3r3)。请注意,我通常成功不会出现此错误,但供应商代码生成应用程序显然会这样做。当然,修复应用程序很重要,我也可以编写一个脚本来比较文件,但是在所有情况下都会捕获这个错误的通用编译时解决方案将是首选。