pragma warnings
-
was genau sind pragma warnings und wieviele befehle dafür gibt es?
-
#pragma ist eine Präprozessor-Direktive (Anweisung), mit der Compileroptionen definiert werden können.
Mit warning können Compiler-Warnungen eingestellt werden. Also z.B. bestimmte deaktiviert werden (z.B. #pragma warning(disable:4700)).
Hier gibts noch genug Lesestoff dazu: http://msdn.microsoft.com/en-us/library/2c8f766e%28VS.80%29.aspx
-
Danke!
Aber wenn ich z.b. so ein Warning habe:
warning C4800: 'ULONG' : forcing value to bool 'true' or 'false' (performance warning)Und ich möchte diesen ausblenden. Aber nur diesen!
Falls so ein warning ein zweites mal kommt, soll er ruhig meckern.
D.h. ich brauche irgendwie ein Gültigkeitsbereich für meine bestimmten Pragmas.Wäre das so richtig ?
#pragma warning(disable:4800)
...
mein Code, der den warning auslöst
....
#pragma warning(default:4800)....
...
gleiche Code nochmal ..... [hier würde er doch wieder den warning anzeigen oder?]
-
aber wozu ist nun push und pop gut ?
kann das doch auch mit defaul beenden?
-
Also das Warning bedeutet das du einen größeren Datentyp (ULONG) in einen kleineren Speichern möchtest (bool).
Die Kompiler Error/Warnings gibts übrigens auch in der MSDN.
Dazu steht folgendes:If you cannot rewrite the expression to use type bool, then you can add "!=0" to the expression, which gives the expression type bool. Casting the expression to type bool will not disable the warning, which is by design.
Bedeutet also, wenns nicht anderst geht bekommst du das warning folgendermaßen weg:
ULONG myLong = 0xffff1111; bool myBool = myLong != 0;
solche warnings sollte man aber generell nicht per pragma warning deaktivieren.
-
Hab ich jemals gefragt, was der Fehler bedeutet ?
Wie er sich auslöst? Oder sonstiges?
Nein!!!War doch nur ein Beispiel.
Ging mir ledelig um die Ausblendung von Warnings.....
-
Ja hauptsache saudumme Fragen stellen die man auch in 10 Sekunden Googlen bekommen hätte und sich dann über Antworten beschweren.
Warnings sollte man niemals ohne einen guten Grund deaktivieren. Und wenn du dann mit dem prädestiniertesten aller Beispiele anrückst dann bekommste halt so eine Antwort.
Und ich möchte diesen ausblenden. Aber nur diesen!
Falls so ein warning ein zweites mal kommt, soll er ruhig meckern.
D.h. ich brauche irgendwie ein Gültigkeitsbereich für meine bestimmten Pragmas.Wäre das so richtig ?
#pragma warning(disable:4800)
...
mein Code, der den warning auslöst
....
#pragma warning(default:4800)....
...
gleiche Code nochmal ..... [hier würde er doch wieder den warning anzeigen oder?]Steht alles in dem Link aus Post #2
Wenn du kein Englisch kannst, dann geh zur Volkshochschule.
Alternativ hör einfach auf zu programmieren
-
Und schon wieder eine unreife Antwort von dir.
Gratuliere!Entweder du hilfst den Leuten oder du lässt es!
-
Ich helfe doch...
Aber wenn du nicht lesen kannst?
Steht alles haarklein im Link aus Post #2 beschreiben. Sollen wirs jetzt noch auf Deutsch übersetzen oder dir den fertigen Quellcode schicken?Selbständig denken ist auch im Jahr 2009 noch nicht verboten worden.
-
Ah das Thema/Diskussion passt gerade wunderbar. Hab ein ähnliches Problem/Frage:
Was genau bedeutet der Compilerwarning C4065.
Hab in der MSDN auch schon wsa gefunden:
The switch statement specifies a default case only. This is equivalent to a sequence of statements.
Aber wirklich viel sagen, tuts mir nicht.
Also die Switchanweisung setzt ein Defualwert und das ist aqivalent zu Folgeanweisung.
Hmm verstehe den fehler net
-
Hallo SuperDappe,
wenn Dein Switch-Statement lediglich einen Defualt-Case beinhaltet, wozu benötigst Du dann überhaupt ein Switch-Statement?
Da reicht es doch vollkommen aus den Defualt-Case als simple Sequenz von Anweisungen zu programmieren.Grüße,
Jas