Compiler unbenutzte Variable



  • Wie kann ich die Warnung "unbenutzte Variable" austellen??
    Ich bin in die Optionen gegangen und habe nichts gefunden :s
    Ich benutze den Compiler Code::Blocks

    Gruß Skeptar





  • Ich habe jedzt [-w] gefunden und es klappt aber werden damit nicht sämtliche Warnungen abgestellt?



  • Ist jetzt nicht das was du hören wolltest, aber warum behebst du nicht einfach die Ursache ?



  • Skeptar schrieb:

    Ich habe jedzt [-w] gefunden und es klappt aber werden damit nicht sämtliche Warnungen abgestellt?

    Das zu machen wäre bekloppt.

    Geh eher in die Richtung -Wall -Werror! Oder geh gleich dahin.

    Die konkrete Warnunbg machste im Code aus. Und da hängt es vom Code ab, welcher Weg hübsch wäre. Mal ein doofes Beispiel:

    int main(int argc,char* argv[]){//haha, argc und arv nicht benötigt
       return 0;
    }
    

    Namenlose Parameter warnen nicht.
    Aber sie geben auch keinen Hinweis über die Bedeutung, schlecht.

    int main(int,char*){
       return 0;
    }
    

    Keine sind besser, geht aber nicht immer.

    int main(){
       return 0;
    }
    

    Am besten, man sagt dem Compiler, daß man die Parameter echt nicht braucht.

    int main(int argc,char* argv[]){
       (void)argc;
       (void)argv;
       return 0;
    }
    

    oder

    int main(int argc,char* argv[]){
       doNothing(argc,argv);
       return 0;
    }
    


  • Um einen einzelnen Fall in GCC auszuschalten, ließe sich folgendes schreiben:

    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wno-unused-variable"
    // Code
    #pragma GCC diagnostic pop
    

    Es ist unschön und sollte möglichst nicht eingesetzt werden!
    Besser finde ich einfach das Weglassen der Parameter-Namen, weil mich nicht interessiert, wie jenes heißt, was ich nicht einsetze.



  • Youka schrieb:

    Besser finde ich einfach das Weglassen der Parameter-Namen, weil mich nicht interessiert, wie jenes heißt, was ich nicht einsetze.

    Den Aufrufer interessiert es aber. Bei mir sind viele Funktionen inline im Header. Die IDE interessiert es auch. Daß die Funktion selber dann den Parameter ignoriert, sollte ihr kleines Geheimnis bleiben.



  • Youka schrieb:

    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wno-unused-variable"
    // Code
    #pragma GCC diagnostic pop
    

    und genau das geht eben nicht.
    #pragma GCC diagnostic ignored "-Wno-unused-variable" ist ihm sogar unbekannt. Gibt Warning aus.

    funktion
    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wno-unused-variable"
    //code
    #pragma GCC diagnostic pop
    
    .c File Anfang
    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wno-unused-variable"
    // Viel code
    #pragma GCC diagnostic pop
    

    Egal wie ich es mache. Ich sehe nur Warnings und zwar rote .... wirklich unlesbar damit 😞



  • Keiner eine idee ? 😞



  • Bullz schrieb:

    Keiner eine idee ? 😞

    Die Loesung wurde doch schon genannt.

    volkard schrieb:

    [...]
    Die konkrete Warnunbg machste im Code aus. Und da hängt es vom Code ab, welcher Weg hübsch wäre.
    [...]
    Namenlose Parameter warnen nicht.
    [...]

    int main(int,char*){
       return 0;
    }
    

    [...]
    Am besten, man sagt dem Compiler, daß man die Parameter echt nicht braucht.

    int main(int argc,char* argv[]){
       (void)argc;
       (void)argv;
       return 0;
    }
    

    oder

    int main(int argc,char* argv[]){
       doNothing(argc,argv);
       return 0;
    }
    


  • Danke. 😉 so kann ich mir mal halbwegs helfen. Gibt es keine Möglichkeit so einfach mal alle Warnings auszuschalten ? Es geht nur im Codebeispiele bei mir.


Anmelden zum Antworten