如果功能参数类型不匹配,则不会发出警告

时间:2015-09-27 15:49:40

标签: mingw codeblocks

由于功能参数类型不匹配,我期待警告消息。但我没有得到任何警告。我甚至没有进行类型转换。我正在使用MinGW的最新版本的代码块。我在编译器设置中启用了“启用所有常见编译器警告”。我没有创建任何项目,而是直接编译单个文件。

void function1(int a, float b)
{
    printf("%d",a);
    printf("%f",b);
}

int main(void)
{
    int a=5;
    float b=12.4522;
    // Do something
    function1(b,a);
return(0);
}

1 个答案:

答案 0 :(得分:0)

您不需要为算术类型之间的转换明确指定强制转换;编译器将在需要时隐式(并静默)执行它们。如果您需要针对示例中显示的案例发出警告,则需要明确启用-Wtraditional-conversion - -Wall-Wextra都不够。但请注意,-Wtraditional-conversion不能用于C++编译 - 仅允许CObjective-C

进一步注意,在编译示例时,我还指定了-pedantic,这会导致编译器发出关于您(错误)使用C++样式注释的警告。