Wie kann ich nervige "const" Warnmeldungen abschalten?



  • Hallo,

    ich benutze die bsearch und qsort Funktionen der stdlib.h. Leider nervt der Compiler mit "const" Warnmeldungen. Wie kann ich die abschalten?

    Das ganze sieht so aus:

    struct tm *key = usw.;
    struct s1 *base = usw.;
    void *ret;
    ret = bsearch( key, base , usw. ); /* Warnmeldung */
    

    Und die Warnmeldung (Visual C++) dazu:

    Unterschiedliche 'const'-Bezeichner
    Formaler Parameter '1' unterscheidet sich von der Deklaration
    Unterschiedliche 'const'-Bezeichner
    Formaler Parameter '2' unterscheidet sich von der Deklaration
    

    bsearch ist wie folgt deklariert:

    void * bsearch ( const void * key, const void * base, usw. );
    

    Leider kann ich die beiden Strukturen nicht als const deklarieren, da ich sie später noch ändern muß.

    Danke für die Hilfe.

    Gruß,
    B!



  • ret = bsearch( (const void*)key, (const void*)base, usw. ); /* !Warnmeldung */



  • _____________________ schrieb:

    ret = bsearch( (const void*)key, (const void*)base, usw. ); /* !Warnmeldung */

    Besten Dank für den Hinweis. Auf die Idee expliziter Casts bin ich auch schon gekommen. Hilft aber leider nicht. Warum weiß ich auch nicht, aber die Warnmeldung bleibt 😡 .

    Vielleicht sollte ich das Coding einmal mit dem gcc compilieren und sehen was der sagt.



  • BitShift schrieb:

    ich benutze die bsearch und qsort Funktionen der stdlib.h. Leider nervt der Compiler mit "const" Warnmeldungen. Wie kann ich die abschalten? ...

    Merkwürdig, ich würde sagen, da stimmt was anderes nicht. Normal müsste der Compiler bei solchen Sachen warnen:

    void func(char* p_data);
    ...
    const char tmp[] = "blabla";
    ...
    func(&tmp[0]);
    

    Aber, so wie du es beschreibst:

    void func(const char* p_data);
    ...
    char tmp[] = "blabla";
    ...
    func(&tmp[0]);
    

    ... müsste es keine Warnungen geben.



  • Hallo,

    wie sieht denn Deine Vergleichsfunktion aus? Ich denke da ist der Fehler zu suchen.

    mnfg Martin


Log in to reply