Compilerwarnung (Stufe 4) C4841
„Nicht standardmäßige Erweiterung verwendet: zusammengesetzter Memberkennzeichner in
offsetof
benutzt
Hinweise
Wenn Sie einen m
Zusammengesetztem Member-Designator verwendenoffsetof(T, m)
, generiert der Compiler beim Kompilieren mit der /Wall
Option eine Warnung.
Diese Warnung ist neu in Visual Studio 2017, Version 15.3, und standardmäßig deaktiviert. Wird verwendet /Wall
, um alle Standardmäßig deaktivierten Warnungen zu aktivieren oder /w14841
C4841 als Warnung der Ebene 1 zu aktivieren. Weitere Informationen finden Sie unter Compilerwarnungen, die standardmäßig deaktiviert sind. Informationen zum Deaktivieren von Warnungen nach Compilerversion finden Sie unter Compilerwarnungen nach Compilerversion.
Beispiel
Der folgende Code ist fehlerhaft und kann zur Laufzeit zu einem Absturz führen:
struct A {
int arr[10];
};
// warning C4841: non-standard extension used: compound member designator in offsetof
constexpr auto off = offsetof(A, arr[2]);
Um das Problem zu beheben, ändern Sie den Code so, dass er nicht mit einem zusammengesetzten Memberdesignator verwendet offsetof
wird.