Ist es eine schlechte Idee, die -fms-Erweiterungen von GCC zu verwenden?

8

GCC hat eine Option, -fms-extensions , die die Verwendung von anonymen Strukturelementen erlaubt:

%Vor%

Dies ermöglicht den Zugriff auf ein x Element in struct b , indem einfach b.x verwendet wird. Dies ist sehr nützlich, aber es scheint, dass es eine Microsoft-Erweiterung ist, die von GCC emuliert wird.

Wird die Verwendung dieser Option meinen Code weniger portabel machen oder wird er als "sicher" angesehen?

    
Alexis King 31.12.2012, 20:53
quelle

3 Antworten

13

Wenn Sie nach Kompatibilität suchen, ist es nie eine gute Idee, laxe Compiler-Optionen zu setzen, striktere - die portabler

    
Ofir 31.12.2012, 20:54
quelle
6

Wenn man bedenkt, dass in der Ausgabe 2011 des Standards (C11) ein Merkmal hinzugefügt wurde, das als anonyme Strukturen und Vereinigungen gleichwertig erscheint, würde ich sagen, dass es keine so schlechte Idee ist, diese Funktion zu verwenden. MS-Compiler unterstützen es, GCC- und "GNU C" -kompatible Compiler unterstützen es, wenn es dazu aufgefordert wird, und neue Compiler, die dem modernen Standard entsprechen, unterstützen es.

    
R.. 31.12.2012 23:43
quelle
4

Das Flag -fms-extensions wird für "Akzeptieren einiger Nicht-Standard-Konstrukte, die in Microsoft-Headerdateien verwendet werden" verwendet. GCC ist mächtig, weil es für verschiedene Standards geschaffen wurde, daher denke ich nicht, dass es eine schlechte Idee ist, dies unter den richtigen Umständen zu verwenden.

    
user1929959 31.12.2012 20:56
quelle

Tags und Links