Si hago:¿En qué versiones de C hay un bloque entre paréntesis utilizado para devolver un valor válido?
int j = ({int x = 7; x+3;});
En i686-manzana-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. construir 5646) gcc compila bien. El bloque en la pregunta ({int x = 7; x+3;})
devuelve el valor de la última instrucción como el valor del bloque. Si elimina los paréntesis, no compila. ¿Puedo esperar que esto funcione en la mayoría de los compiladores de C?
Además, ¿cómo se llama esta construcción? He tenido muchos problemas para buscarlo porque los motores de búsqueda no indexan ()
o {}
y C es un término de búsqueda terrible. Tampoco he podido encontrar nada al respecto en ninguno de mis libros, probablemente porque no sé qué buscar.
No espere que funcione, y no espere que las personas para poder leer tu código – Puppe