Als ich folgendes Programm kompiliert habe: g++ -O2 -s -static 2.cpp
gab es mir die Warnung ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
.
Aber wenn ich -02
von Copiling-Anweisung entfernen, wird keine Warnung angezeigt.Ignorieren Rückgabewert von 'int scanf (const char *, ...)', deklariert mit Attribut warn_unused_result [-Wunused-Ergebnis]?
Mein 2.cpp
Programm:
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
return 0;
}
Was ist die Bedeutung dieser Warnung ist und was ist die Bedeutung von -O2
??
also wie entferne ich diese Warnung weil bis zu dem Datum alle C-Programme, die ich geschrieben habe ich nie überprüft den Rückgabewert von scanf !!! Mit welchem Optimierungsparameter können Sie auch Licht erzeugen? –
@perh Ist das ein guter Grund? – Antonio
Nun, keine Überprüfung bedeutet, dass das Programm den falschen Wert zurückgibt, wenn eine der Variablen nicht von der sscanf gesetzt wird (mit nicht initialisierten Werten). Es ist nur eine Warnung, kein Fehler. Wenn es nicht angezeigt wird, wenn (mindestens) -O wegen fehlender Analyse durch den Compiler nicht verwendet wird, ist es genau so. – perh