W jakich wersjach C jest blok wewnątrz nawiasu używany do zwracania wartości?

Jeśli zrobię:

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

W i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646) gcc dobrze się kompiluje. Blok, o którym mowa({int x = 7; x+3;}) zwraca wartość ostatniej instrukcji jako wartość bloku. Jeśli usuniesz nawias, nie zostanie on skompilowany. Czy mogę oczekiwać, że to zadziała w większości kompilatorów C?

Dodatkowo, jak nazywa się ten konstrukt? Miałem wiele problemów z wyszukiwaniem, ponieważ wyszukiwarki nie indeksują() lub{} a C to straszne wyszukiwane hasło. W żadnej z moich książek nie udało mi się znaleźć niczego na ten temat, prawdopodobnie dlatego, że nie wiem, czego szukać.

questionAnswers(3)

yourAnswerToTheQuestion