Compilerwarnung (Stufe 4) C4366

Das Ergebnis des unären Operators 'Operator' ist möglicherweise nicht ausgerichtet

Wenn ein Strukturmember aufgrund von Komprimierung nicht ausgerichtet sein könnte, gibt der Compiler eine Warnmeldung aus, wenn die Adresse dieses Members einem ausgerichteten Zeiger zugewiesen wird. In der Standardeinstellung sind alle Zeiger ausgerichtet.

Zur Behebung von C4366 ändern Sie entweder die Ausrichtung der Struktur, oder Sie deklarieren den Zeiger mit dem __unaligned-Schlüsselwort.

Weitere Informationen finden Sie unter __unaligned und pack.

Beispiel

Im folgenden Beispiel wird C4366 generiert.

// C4366.cpp
// compile with: /W4 /c
// processor: IPF x64
#pragma pack(1)
struct X {
   short s1;
   int s2;
};

int main() {
   X x;
   short * ps1 = &x.s1;   // OK
   int * ps2 = &x.s2;   // C4366
}