#include <stdio.h>
int main() {
int x = ({int a = 2; a;});
printf("%d\n", x);
}
출력 : 2
#include <stdio.h>
int main() {
int x = ({int a = 2; a;});
printf("%d\n", x);
}
출력 : 2
GCC에서 제공하는 C/C++ 언어의 비표준 확장자 인 statement expressions입니다. -pedantic
플래그로 컴파일하려고하면 "ISO C는 표현식 내에 중괄호 그룹을 금지합니다"라는 경고 메시지가 나타납니다. 가능한 경우 이 아니고 휴대용 코드이므로 피해야합니다.
그것은, 'A'라는 지역 변수를 선언 그것에게 값을 할당 '2'다음 a의 값을 x에 대입합니다.
({ ... })
구문은 언어에 대한 GCC 확장입니다. 블럭에있는 마지막 문장의 값으로 평가하는 블럭 유사 표현식이라고 생각하십시오.
저는 여기 아담과 있어요. 사용하지 마십시오. 어떤 종류의 퍼포먼스가 제공 될지 전혀 모릅니다. 휴대용이 아니라는 것을 알고 있으며, 이상하고 간헐적으로 판독하기 어려운 것을 발견했습니다. –
프로그래밍 콘테스트의 솔루션에서 사용되었습니다. – Shrey