2015-09-27 3 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++ компиляции - разрешено только для C и Objective-Cтолько.

Обратите внимание, что при компиляции вашего примера я также указал -pedantic, что заставляет компилятор выпустить предупреждение о вашем (неправильном) использовании комментариев стиля C++.