Gültigkeitsbereich/Überdefinition eines Bezeichners



  • Also ich hab leider nix gefunden zu folgenden Fragen:

    Worin besteht in C der Gültigkeitsbereich eines Bezeichners?
    Was versteht unter der "Überdefinition" eines Bezeichners? Darf man in C Bezeichner überdefinieren? Wie steht es mit der Überdefinition von Operatoren?

    Ein Link unter dem ich was finden könnte wäre schön....
    greetz



  • kallemalle schrieb:

    Also ich hab leider nix gefunden zu folgenden Fragen:
    Worin besteht in C der Gültigkeitsbereich eines Bezeichners?

    kommt drauf an. gewöhnlich ist ein bezeichner nur solange gültig, bis der block, in dem er sich befindet abgearbeitet ist.
    blöcke erkennst du ganz gut an den geschweiften klammern ^^
    außer natürlich bei globalen bezeichnen..die leben bis zum programmende.
    dann sind natürlich noch die speicherklassen extern und static zu beachten,
    so ist z.B. eine variable, die modulglobal als static definiert ist, nur in diesem modul sichtbar und kann "von außen" nicht angesprochen werden. ebenso static-funktionen.

    Was versteht unter der "Überdefinition" eines Bezeichners? Darf man in C Bezeichner überdefinieren? Wie steht es mit der Überdefinition von Operatoren?

    Ich weiß jetzt zwar nicht genau, was du mit "Überdefinition" meinst, aber ich gehe jetzt einfach mal davon aus, dass du das Überladen von Funktionen meinst.
    Das ist in C nicht möglich, allerdings in C++. du kannst mehrere "versionen" derselben funktion schreiben. diese unterscheided der compiler dann anhand ihrer signatur (anzahl und typen der argumente)
    das sieht dann so aus:

    void myfunc(int& v1, int v2);
    float myfunc(float v1, float v2);
    
    // kannst du dann aufrufen als
    int z1 = 4, z2 = 5;
    float f1 = 3.1, f2 = 12.38;
    //...
    myfunc(z1, z2);
    // oder
    float f3 = myfunc(f1, f2);
    

Anmelden zum Antworten