Freigeben über


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.