Nein, C unterstützt keine Lambda-Ausdrücke.
Wenn Sie C ++ verwenden möchten, verfügt Boost über eine Bibliothek, die Lambdas emuliert. Außerdem wird C ++ 0x eingebaute Unterstützung für Lambda-Ausdrücke haben.
Zu dieser Zeit gab es keine große Nachfrage nach Unterstützung für Lambda-Ausdrücke in C, weshalb die Sprache dies nicht unterstützte.
C unterstützt weder Lambda-Ausdrücke noch andere Möglichkeiten (innerhalb des Standards der Sprache), um dynamisch Funktionen zu erstellen - alle Funktionen werden standardmäßig zum Zeitpunkt der Kompilierung erzeugt. Ich vermute, der Grund ist, die Sprache klein, einfach, schlank und sehr schnell zu halten, wobei kaum Unterstützung für die Laufzeitbibliothek erforderlich ist - entscheidend für eine Sprache, die bei der Programmierung von Betriebssystemen, Gerätetreibern, eingebetteten Anwendungen und so weiter.
Nein, C hat keine Lambda-Ausdrücke (oder eine andere Möglichkeit, Closures zu erzeugen).
Dies ist wahrscheinlich so, weil C eine Low-Level-Sprache ist, die Features vermeidet, die eine schlechte Performance haben und / oder die Sprache oder das Laufzeitsystem komplexer machen.