본문 바로가기
소프트웨어 개발(SW Dev)/Rule(CERT C)

CERT C - PRE 규칙 목록

by flowhistory 2024. 10. 24.

 

Rule
Number
Rule Definition 비고
PRE00-C 함수형 매크로보다 인라인 또는 정적 함수를 선호합니다. 매크로는 실제 함수의 사용법과 유사하기 때문에 위험하지만 의미가 다릅니다.
인라인 함수 지정자는 C99 표준의 C 프로그래밍 언어에 도입되었습니다.
인라인 함수는 상호 교환적으로 사용될 수 있는 경우 매크로보다 선호되어야 합니다.
PRE02-C 매크로 대체 목록은 괄호로 묶어야 합니다. 주변 표현식으로부터 우선순위가 낮은 연산자를 보호하려면 매크로 대체 목록을 괄호로 묶어야 합니다.
PRE00-C도 참조하세요.
PRE10-C 다중 문장 매크로는 do-while 루프로 감싸세요. 매크로는 일련의 여러 명령문을 그룹으로 실행하는 데 자주 사용됩니다.
일반적으로 인라인 함수는 이 작업에 더 적합합니다(PRE00-C 참조. 함수형 매크로보다 인라인 또는 정적 함수를 선호합니다).
그러나 때로는 실행 가능하지 않은 경우도 있습니다.
(예를 들어 매크로가 다른 유형의 변수에 대해 작동해야 하는 경우).
PRE11-C 매크로 정의를 세미콜론으로 끝내지 마십시오. 매크로는 소스 코드를 더 읽기 쉽게 만들기 위해 자주 사용됩니다.
매크로 정의는 단일 또는 다중 명령문으로 확장되는지 여부에 관계없이 세미콜론으로 끝나서는 안 됩니다.
(PRE10-C
를 참조하세요. 다중문 매크로를 do-while 루프로 감싸세요.)

필요한 경우 매크로 확장 뒤에 세미콜론을 포함해야 합니다.
실수로 매크로 정의 끝에 세미콜론을 삽입하면 프로그램의 제어 흐름이 예기치 않게 변경될 수 있습니다.

 

728x90

댓글