>백엔드 개발 >C++ >C 17은 'if' 표현식의 변수 선언 규칙을 어떻게 변경했나요?

C 17은 'if' 표현식의 변수 선언 규칙을 어떻게 변경했나요?

Linda Hamilton
Linda Hamilton원래의
2024-12-13 16:30:13616검색

How Has C  17 Changed the Rules for Variable Declaration in `if` Expressions?

'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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.