2015-09-27 71 views
0

由於函數參數中的類型不匹配,我期待警告消息。但我沒有得到任何警告。我甚至沒有類型化。我正在使用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); 
} 

回答

0

您不需要爲算術類型之間的轉換顯式指定轉換;編譯器會在需要時隱式執行它們(並以靜默方式)。如果您希望針對您在示例中顯示的案例發出警告,則需要明確啓用-Wtraditional-conversion - 既不是-Wall也不是-Wextra就足夠了。但請注意,-Wtraditional-conversion不能用於編譯C++ - 允許使用CObjective-C只有

此外請注意,編譯您的示例時,我還指定-pedantic,這會導致編譯器發出有關您的(錯誤)使用C++樣式註釋的警告。