Avertissement du compilateur (niveau 4) C4764
Impossible d'aligner les objets de bloc catch sur plus de 16 octets
Un alignement supérieur à 16 a été spécifié. Toutefois, sur certaines plates-formes, si la fonction lève une exception, la pile force un alignement qui n’est pas supérieur à 16.
Exemple
L’exemple suivant génère l’avertissement C4764 :
// 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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour