Share via


Upozornění kompilátoru (úroveň 4) C4841

Použité nestandardní rozšíření: složeného členového návrhátoru použitého v offsetof

Poznámky

Pokud použijete offsetof(T, m), kde m je složený člen návrh, kompilátor vygeneruje upozornění při kompilaci s /Wall možností.

Toto upozornění je nové v sadě Visual Studio 2017 verze 15.3 a je ve výchozím nastavení vypnuté. Umožňuje /Wall povolit všechna upozornění, která jsou ve výchozím nastavení vypnutá, nebo /w14841 povolit C4841 jako upozornění úrovně 1. Další informace najdete v tématu Upozornění kompilátoru, která jsou ve výchozím nastavení vypnutá. Informace o tom, jak zakázat upozornění podle verze kompilátoru, naleznete v tématu Upozornění kompilátoru podle verze kompilátoru.

Příklad

Následující kód je špatně vytvořený a může potenciálně způsobit chybové ukončení za běhu:

struct A {
   int arr[10];
};

// warning C4841: non-standard extension used: compound member designator in offsetof
constexpr auto off = offsetof(A, arr[2]);

Pokud chcete tento problém vyřešit, změňte kód tak, aby se nepoužíl offsetof s návrhem složeného člena.