GCC erfordert kein "Wrapping" (oder Realisieren), es sei denn, das Ergebnis muss "stringifiziert" werden. Gcc hat Funktionen, aber ALLES kann mit C-Version 1 durchgeführt werden (und einige behaupten, Berkeley 4.3 C sei so viel schneller, dass es sich lohnt, die Verwendung zu lernen).
** Clang (llvm) MACHT WEISSEN RAUM NICHT RICHTIG für die Makroerweiterung - es fügt Leerzeichen hinzu (was sicherlich das Ergebnis als C-Kennung für die weitere Vorverarbeitung zerstört) **, Clang führt einfach keine # oder * Makroerweiterung durch als C-Präprozessor wird für Jahrzehnte erwartet. Das beste Beispiel ist das Kompilieren von X11, das Makro "Concat3" ist kaputt, das Ergebnis ist jetzt MISNAMED C Identifier, das natürlich nicht erstellt werden kann. und ich fange an, Dinge zu bauen, die scheitern, sind ihr Beruf.
Ich denke, die Antwort hier ist "Neues C, das gegen Standards verstößt, ist schlechtes C". Diese Hacks entscheiden sich immer dafür (Clobber-Namespaces), die Standardeinstellungen ohne Grund zu ändern, aber C nicht wirklich "zu verbessern" (außer nach eigenem Ermessen: was ich Sagen wir, es wurde eine Erfindung gemacht, um zu erklären, warum sie mit all dem Bruch davonkommen, für den sie noch niemand verantwortlich gemacht hat.
Es ist kein Problem, dass die früheren C-Vorprozessoren UNIq_ () __ nicht unterstützten, da sie #pragma unterstützten, wodurch "Hacker-Compiler-Marken im Code als Hackery gekennzeichnet werden können" und ebenso gut funktionieren, OHNE Standards zu beeinflussen: genauso wie Änderungen Standardeinstellungen sind nutzlose Wonton-Brüche, und genauso wie das Ändern der Funktionsweise einer Funktion unter Verwendung des gleichen Namens (Namespace-Clobbering) meiner Meinung nach ... Malware ist