In welchen Versionen von C wird ein Block in Klammern verwendet, um einen gültigen Wert zurückzugeben?

Wenn ich mache:

int j = ({int x = 7; x+3;});

In i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. Build 5646) wird gcc problemlos kompiliert. Der fragliche Block({int x = 7; x+3;}) Gibt den Wert der letzten Anweisung als Wert des Blocks zurück. Wenn Sie die Klammer entfernen, wird sie nicht kompiliert. Kann ich damit rechnen, dass dies in den meisten C-Compilern funktioniert?

Wie heißt dieses Konstrukt außerdem? Ich hatte große Probleme bei der Suche, da Suchmaschinen nicht indizieren() oder{} und C ist ein schrecklicher Suchbegriff. Ich konnte auch in keinem meiner Bücher etwas darüber finden, wahrscheinlich weil ich nicht weiß, wonach ich suchen soll.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage