Aracılığıyla paylaş


Derleyici Uyarısı (düzey 4) C4764

Catch nesneleri 16 bayttan büyük nesnelere hizalanamıyor

16'dan büyük bir hizalama belirtildi, ancak bazı platformlarda işlev özel durum oluşturursa, yığın 16'dan büyük olmayan bir hizalamayı zorlar.

Örnek

Aşağıdaki örnek C4764 oluşturur:

// C4764.cpp
// compile with: /W4 /EHsc
// processor: x64 IPF
#include <stdio.h>

class A
{
public:
    int x;
};

typedef __declspec(align(32)) A ALIGNEDA;

int main()
{
    ALIGNEDA a;
    try
    {
        a.x = 15;
        throw a;
    }
    catch (ALIGNEDA b) // can't align b to > 16 bytes
    {
        printf_s("%d\n", b.x);
    }
}   // C4764