programacion - Extraña sintaxis de C/C++
lenguaje c versiones (1)
Posible duplicado:
¿Qué es esta sintaxis de C ++ que pone un bloque rodeado de refuerzos donde se espera una expresión?
Acabo de encontrar esta extraña sintaxis de C / C ++:
#include <stdio.h>
int main() {
printf("%s",
({
static char b__[129];
b__[0] = 55;
b__[1] = 55;
b__[2] = 0;
b__;
})
);
}
Esto compila y funciona bien usando tanto gcc como g ++ (4.5.2). Esta es la primera vez que veo algo como esto, y me pregunto qué significa exactamente esta sintaxis. Intenté buscarlo en Google, pero no tengo idea de cómo se llama esta construcción.
Se llaman expresiones de declaración , es una extensión de GNU. En tu ejemplo, el resultado de la expresión es b__
.