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ć.