struct und pragma alignment



  • Hallo,

    habe folgendes Szenario:

    // Variante 1
    
    #pragma alignment 1
    
    typedef struct         // Ich weiss, ist C
    {
       char Char_1 ;
       int  Int_1 ;
       char Char_2 ;
    } MyStruct ;
    
    #pragma alignment
    
    //---------------------------------------------------------------------------
    class MYCLASS
    {
    private:
    
    //  Variante 2
    
    #pragma alignment 1
    
       MyStruct Message ;
    
    #pragma alignment
    
    public:
    };
    

    Ich will Message später als einen char-array verwenden, möchte also, dass alle Bytes hintereinander liegen.
    Leider ist mir der Gebrauch des #pragma etwas schleierhaft. Wann muss ich es einsetzen? Wenn ich MyStruct definiere oder wenn ich Message deklariere?
    Wird mit #pragma alignment die Einstellung wieder zurückgesetzt?



  • Welchen Compiler verwendest du?

    BTW - ähnliche Thematik:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-117530-and-view-is-previous.html

    (mit der Forensuche solltest du noch mehr in der Richtung finden, bzw. in der Doku deines Compilers)



  • Danke, der Link hat die Frage beantwortet.

    Benutze BCB und in der Hilfe habe ich zwar etwas über alignment gefunden, aber leider wurde mir nicht klar, dass ich dafür #pragma pack verwenden kann und wie (kein example in dem Zusammenhang).


Anmelden zum Antworten