我想知道是否可以启用任何编译器标志来处理
“错误:冲突类型”
错误警告。有没有这样的旗帜?
答案 0 :(得分:2)
无法删除冲突类型 错误的情况。如果可能,那么有错误信息是什么意思?考虑以下情况
transferFrom()
汇编产生
prog.c:在函数'main'中:
prog.c:5:8:错误:'p'的冲突类型 float p = 5;
^
prog.c:4:6:注意:'p'的先前定义在这里 int p = 5;
^
这里有两个变量的名称冲突。这是一个错误,编译器无法继续,因此它会发出错误消息。如果您希望此错误变成仅仅警告并继续编译,那么如何确定下一步呢?那是不可能的。
但是,一个特殊情况,隐式函数声明也会触发此警告并启用#include <stdio.h>
int main(void) {
int p = 5;
float p = 5;
printf("%d %f\n", p, p);
return 0;
}
标志,它将给出错误。这种特殊情况可以绕过(请自担风险)。
从不试图自己尝试
如果您不希望警告进行隐式声明(导致冲突类型),您可以使用-Werror
版{{1}我想这是为了达到这个目的。