Warnung an einer einzigen Stelle ignorieren.



  • Hallo, ich möchte die Warnung

    warning: comparison between signed and unsigned integer expressions

    an einer einzigen Stelle im Code ausschalten (geht leider nicht anders).

    Es soll ja mit

    #pragma warning( push )
    #pragma warning( disable : WarningCode)
    // code with warning
    #pragma warning( pop )
    

    Aber ich weiß nicht welche Nummer für diese Warnung es genau ist.



  • Oder du castest einfach beide in einen Typen, der den Wertebereich beider fassen kann.



  • Nathan schrieb:

    Oder du castest einfach beide in einen Typen, der den Wertebereich beider fassen kann.

    Kostet es nicht zuviel wenn ich es mehrere Millionen mal machen muss?



  • Namal schrieb:

    Aber ich weiß nicht welche Nummer für diese Warnung es genau ist.

    Steht doch in der Warning, die du abschalten willst!?
    Oder verstehe ich was falsch?

    Edit:
    4389 beim msvc



  • Hab den gcc, steht leider nur die Zeile und die oben genannte Warnung.



  • Namal schrieb:

    Nathan schrieb:

    Oder du castest einfach beide in einen Typen, der den Wertebereich beider fassen kann.

    Kostet es nicht zuviel wenn ich es mehrere Millionen mal machen muss?

    Nein, es wird sowieso gecastet (in den unsigned Typen). Ausserdem sind signed/unsigned gratis, da die Typen auf Assembler-Ebene gar nicht existieren.

    Caste explizit und lass das mit den Compiler-Pragmas bleiben.



  • Namal schrieb:

    Hab den gcc, steht leider nur die Zeile und die oben genannte Warnung.

    Dieses '#pragma warning( disable : WarningCode)' geht eh nur mit msvc (soweit ich weiss, keine Ahnung von gcc).
    Aber wie bereits gesagt ist das Warning-Abschalten in deinem Fall eh unnötig.



  • Namal schrieb:

    Hab den gcc, steht leider nur die Zeile und die oben genannte Warnung.

    Dieses pragma Gedöns ist abhängig vom Compiler.

    warning options
    diagnostic pragmas
    predefined macros

    #ifdef __GNUG__
    #pragma GCC diagnostic ignored "-Wsign-compare"
    #endif 
      // code with warning
    #ifdef __GNUG__
    #pragma GCC diagnostic pop
    #endif
    

Anmelden zum Antworten