추가 괄호는 일반적으로 C 프로그램의 의미를 바꾸지 않지만, 특정 상황에서는 기본 연산자 우선순위를 무시하는 것 이상의 효과:
(fn)(arg)와 같은 함수 호출 주위의 괄호는 인수 종속 이름 조회(ADL)를 방지합니다. 괄호가 없으면 fn(arg)는 가능한 일치 함수를 둘러싸는 네임스페이스에서 검색합니다.
함수 인수 또는 초기화 목록과 같은 목록 컨텍스트에서 a, (b, c), d를 사용하면 표준 a와 달리 쉼표 연산자를 (b, c)에 별도로 적용할 수 있습니다. b, c, d 표기
추가 괄호는 선언형 구문이 함수 또는 표현식 문과 충돌하는 코드를 명확하게 할 수 있습니다. 예를 들어, S w(int(a)); 및 S y((int)a);, 괄호는 함수 선언이 아닌 객체 선언임을 분명히 합니다.
decltype(e)은 피연산자가 lvalue 참조인지 rvalue 참조인지 추론합니다. decltype((e))처럼 괄호를 추가하면 피연산자가 rvalue 참조로 처리됩니다.
연산자 우선순위 문제를 방지하고 매크로 인수를 쉼표로 보호하며 헤더의 매크로 확장을 방지하기 위해 매크로 정의 내에서 괄호를 사용할 수 있습니다. 예를 들어 #define TIMES(A, B) (A) * (B); TIMES(1 2, 2 1)이 9로 평가되는지 확인합니다.
위 내용은 이름 조회, 쉼표 연산자 동작 또는 표현식 평가를 조작하기 위해 C에서 추가 괄호를 언제 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!