Подтвердить что ты не робот

Синтаксис Strange C/С++

Возможный дубликат:
Какой синтаксис С++ помещает блок, окруженный фигурными скобками, где ожидается выражение?

Я просто столкнулся с этим странным синтаксисом C/С++:

#include <stdio.h>
int main() {
    printf("%s",
        ({
        static char b__[129];
        b__[0] = 55;
        b__[1] = 55;
        b__[2] = 0;
        b__;
        })
    );
}

Это компилируется и работает отлично, используя как gcc, так и g++ (4.5.2). Это первый раз, когда я вижу что-то подобное, и мне интересно, что именно означает этот синтаксис. Я пытался использовать Google, но я понятия не имею, что называется этой конструкцией.

4b9b3361

Ответ 1

Они называются выражения выражения , это расширение GNU. В вашем примере результатом выражения является b__.