Поделиться через


Предупреждение компилятора (уровень 4) C4366

Результат унарного оператора "оператор" может быть неоплачен

Если элемент структуры может быть незамечен из-за упаковки, компилятор будет предупреждать, когда адрес этого элемента назначается выровненному указателю. По умолчанию все указатели выровнены.

Чтобы разрешить C4366, измените выравнивание структуры или объявите указатель с помощью ключевого слова __unaligned .

Дополнительные сведения см. в __unaligned и пакете.

Пример

Следующий пример приводит к возникновению ошибки C4366.

// 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
}