'if' 표현식의 변수 선언: 규칙 명확화
'if' 표현식 조건 내에 선언된 변수는 그동안 물음표였습니다. 한동안 프로그래머. C 표준은 처음에 이러한 변수의 범위를 설명했지만 괄호 및 여러 선언과 관련하여 여전히 모호함이 남아 있습니다.
제공된 예에서 변수 선언 주위에 괄호를 사용하면 컴파일러가 컴파일에 실패합니다.
if((int a = Func1())) { // Fails to compile. }
단일 조건에서 여러 선언이 있는 경우에도 확장되는 이 동작은 선언이 조건 자체 바로 앞에 있어야 한다는 규칙 때문입니다. 괄호는 이 규칙을 깨뜨립니다.
그러나 C 17이 도입되면서 상황이 달라졌습니다.
if (int a = Func1(), b = Func2(); a && b) { // Do stuff with a and b. }
이제 ;를 사용하여 괄호 안에 변수를 선언할 수 있습니다. 선언과 조건을 분리합니다. 이번 개선으로 'if' 조건의 유연성이 확장되었습니다.
위 내용은 C 17은 'if' 표현식의 변수 선언 규칙을 어떻게 변경했나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!