was übergibt man der sizeof-funktion?



  • Hallo.

    Mich würde einmal interessieren, was man der sizeof-Funktion eigentlich übergibt?

    Also man übergibt ihr eine Typen-Bezeichnung. Das weiß ich. Ich meine aber jetzt, wie wird die sizeof-Funktion deklariert? Ich finde sie in keiner Include-Datei.
    Ist sie ein Schlüsselwort?

    Wie kann man z.B. (auch wenn es vielleicht sinnlos erscheint) selber eine Funktion schreiben, der man nur einen Typenbezeichner übergibt? Geht das überhaupt?

    Also meinetwegen will ich (als ein total sinnfreies Beispiel, das man wohl besser mit Macros lösen könnte, aber trotzdem) die Funktion sizeof "umbenennen", also eine Funktion schreiben, die nur sizeof aufruft (das will ich nicht wirklich, das dient jetzt nur zur Erklärung, was ich meine):

    int meine_funktion (<typ> type) {
    return sizeof(type);
    }
    

    Was müsste ich dann für <typ> einsetzen?



  • sizeof ist ein C++ Schlüsselwort und man kann es nicht selber nachprogammieren.



  • sizeof ist ein Operator. Genauso wie * + - .. etc



  • ... und keine Funktion.



  • Danke. Mehr wollt ich garnicht wissen.
    Ich schreib grad an was, wo ich Pointer casten muss, und den Typ, als den man sie casten muss in nem Array speichere...
    Mit ein bissel Phantasie geht das auch anders (ist auch überhaupt nicht schwer), aber wenn es eben so eine Möglichkeit gegeben hätte, wäre sie wohl eleganter gewesen - weniger dummes if-gespamme und so...



  • sizeof() wird auch nicht zur Laufzeit ermittelt, sondern zur Kompilierzeit.

    Beim Kompilieren schaut Dein Compiler nach "Ahh... ich bin hier auf 'ner Windows-Maschine auf einer 32 Bit Plattform, dann hat int wohl 4 Byte!" und trägt den Wert direkt an der entsprechenden Stelle ein.



  • Sgt. Nukem schrieb:

    sizeof() wird auch nicht zur Laufzeit ermittelt, sondern zur Kompilierzeit.

    <pedantic>

    Seit C99 gibt es VLAs.

    </pedantic>


Anmelden zum Antworten