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.