2009-02-03 48 views
5

Mögliche Duplizieren:
Can I make GCC warn on passing too-wide types to functions?Unterschied zwischen -Wconversion zwischen gcc und g ++

Betrachten Sie das folgende Testprogramm:

static void func(int a) 
{ 
} 

int main() 
{ 
    unsigned int b = 42; 

    func(b); 

    return 0; 
} 

es mit gcc kompilieren:

Aber in g ++ gibt es keine Warnung !:

 
[email protected]:~/projects$ g++ -Wconversion testit.c 
[email protected]:~/projects$ 

Was ist der Grund dafür ist, und ist es eine Möglichkeit, die gleiche Warnung zu erhalten, wenn C++ kompiliert Code?

Antwort

4

Von the documentation für -Wconversion:

Warnungen über Konvertierungen zwischen mit und ohne Vorzeichen ganze Zahlen sind standardmäßig in C deaktiviert ++, es sei denn -Wsign-Umwandlung ist explizit aktiviert.

Scheint, dass Sie auch eine ausreichend neue Version von GCC benötigen. Ich habe Version 4.0.1, und es erkennt -Wsign-conversion nicht.

Verwandte Themen