PRE02-C. 매크로로 치환될 영역은 반드시 괄호로 둘러싸야 한다
매크로로 치환될 영역을 괄호로 둘러싸면 근처의 표현식으로 인해 우선순위가 바뀌는 일을 방지할 수 있다. PRE00-C 함수형의 매크로보다는 인라인이나 정적 함수를 사용하라와 PRE01-C 매크로에서는 매개 변수에 괄호를 사용하라를 참조하라. 부적절한 코드 예 아래 CUBE() 매크로 정의는 치환될 영역을 괄호로 둘러싸고 있지 않아 부적절하다. #define CUBE(X) (X) * (X) * (X) int i = 3; int a = 81 / CUBE(i); 따라서 다음과 같이 호출하면, int a = 81 / CUBE(i); 이렇게 확장되므로, int a = 81 / i * i * i 결과는, int a = (((81 / i) * i) * i); /* 243 이 된다 */ 처럼 의도와 다르게 된다. 해결..
개발 환경/CERT - 취약점
2021. 6. 1. 18:30