Variable mit fester Größe



  • Hallo,
    ich brauche Variablen mit fester Größe, wie erstellt man die?

    mainMaster


  • Mod

    Du musst um genau 11:59 Nachts ein Hühnerherz auf einem verlassenen Indianderfriedhof mit genau 57 Gräbern im Siebzehnten Grab in den Schädel der Leiche stecken. Dabei sagst du 99 mal "In C++ haben alle Objekte und Referenzen eine konstante Größe" auf.

    Anschließend schaust du bei Volkard vorbei und fasst ihm zwischen die Brüste um den heiligen Grahl an dich zu nehmen.



  • Schöne Anleitung aber mit dem Grahl komm ich nicht weiter 😃


  • Mod

    Ist eigentlich auch sinnlos; nachdem SeppJ die Anfrage an Volkard verschickt hatte, habe ich beobachtet wie er seinen Job gekündigt und einen Flug nach Rom gebucht hat...



  • Was ist denn ein Grahl? Sowas wie ein Trohll?



  • mainMaster schrieb:

    ich brauche Variablen mit fester Größe, wie erstellt man die?

    Diese Frage musst Du wohl noch etwas präzisieren. Da in C++ ein sizeof auf eine Variable zur Übersetzungszeit schon fest steht -- also keine laufzeitabhängigen Werte liefert -- gehe ich mal davon aus, dass Du Dich hier nur ungeschickt ausgedrückt hast; denn das Problem, was Du hier andeutest, gibt es ja nicht. Alle Variablen haben eine feste Größe.



  • Dafür gibt es die stdint.

    Zusätzlich kann man das Pack verhalten des C++ Compilers verändern. Dieses bestimmt welchen minimalen byte Abstand es zwischen Variablen gibt.
    Dies macht jedoch nur Sinn wenn Daten, z.B. für eine API wie OpenGL, ganz genau übergeben werden müssen. Ansonsten sollte man dem Compiler diese option zur Optimierung überlassen.

    Beispiel:

    #pragma pack(push)
    #pragma pack(1) //<- genau auf 1 byte ausrichten, dh. es gibt keine ungenutzten Platz zwischen Variablen
    int8_t meineEigene8BitVariable;
    int8_t meineZweite8BitVariableDirektHinterDerErstenVariable;
    #pragma pack(pop)
    

    Ich entschuldige mich falls ich einen Trollversucht kaput gemacht habe.


Anmelden zum Antworten