Das Versprechen
Das ISO-C-Komitee hat die Technical Specification 25755 fertiggestellt und bringt damit das Schlüsselwort defer offiziell auf den Weg in den C2Y-Standard (Quelle: Jens Gustedt Blog, Feb. 2026). Der Mechanismus bietet eine native, bereichsbasierte Möglichkeit, Aufräumcode einzuplanen. Er soll die manuellen und fehleranfälligen goto cleanup-Muster ersetzen, die die C-Entwicklung seit Jahrzehnten prägen.
Unter der Haube
Die Einführung von defer in C2Y ist eine Antwort auf den wachsenden Druck auf C, moderne Sicherheitsfunktionen zu übernehmen, vor allem seit der Linux-Kernel Anfang 2026 zur dauerhaften Unterstützung von Rust übergegangen ist (Quelle: DevNewsletter, Jan. 2026).
Stand der technischen Umsetzung:
* Clang 22 liegt derzeit vorn, mit nativer Unterstützung über das Flag -fdefer-ts (Quelle: Jens Gustedt Blog).
* Die native Unterstützung in GCC befindet sich noch in Entwicklungszweigen. Eine stabile Version wird mit GCC 16 oder 17 erwartet (Quelle: Hacker News).
* Ein makrobasierter Fallback für GCC 9+ mit __attribute__((cleanup)) wird in der Produktion eingesetzt, um die Funktion nachzubilden (Quelle: Anton Zhiyanov).
* Anders als das funktionsbezogene defer in Go ist die C-Variante bereichsbasiert und wird am Ende des aktuellen Blocks ausgeführt (Quelle: Jens Gustedt Blog).
Erkannte Risiken und Grenzen:
* Verwirrung beim Gültigkeitsbereich: Weil die Ausführung am Ende eines Blocks statt einer Funktion erfolgt, kann defer in Schleifen zu Logikfehlern führen (Quelle: r/C_Programming).
* Fragmentierung der Compiler: Teams müssen für plattformübergreifende Stabilität Makro-Wrapper pflegen, bis GCC zu Clang aufschließt (Quelle: Hacker News).
* ABI-Sicherheit: Fachleute warnen, dass GCC-Makro-Fallbacks mit „nested functions“ über Trampoline zu Stack-Exploits führen können (Quelle: Jens Gustedt Blog).
Noch wissen wir nicht, wann GCC 16/17 offiziell erscheint.
Unsere Einschätzung
Setzen Sie das nicht in geschäftskritischem Produktionscode ein, bevor GCC 16 oder 17 eine stabile Version erreicht. Die Implementierung in Clang 22 ist zwar robust, doch die aktuelle Fragmentierung erzwingt den Rückgriff auf makrobasierte Nachbildungen, die unnötige ABI-Risiken mit sich bringen. Die bereichsbasierte Ausführung ist dem Modell von Go für die Systemprogrammierung technisch überlegen. Sie erfordert aber ein Umdenken, um Ressourcenlecks in komplexen Schleifen zu vermeiden. Für das Überleben von C im Jahr 2026 ist das eine wichtige Weiterentwicklung. Belassen Sie es aber noch mindestens zwei Quartale bei Ihren Nebenprojekten.