소프트웨어 개발(SW Dev)/Rule(MISRA-C)
MISRA C:2012 - A standard C environment의 Required 목록
flowhistory
2024. 11. 27. 17:32
다음 표는 MISRA C 코딩규칙 중에서 카테고리1, A standard C environment - 표준 C환경의 Required 규칙 목록과 설명이다.
Rule Number |
Rule Definition | 비고 |
1,1 | 프로그램에는 표준 C 구문 및 제약 조건을 위반하는 내용이 포함되어서는 안 되며 구현의 번역 제한을 초과해서는 안 됩니다. | 프로그램은 선택한 표준 버전에 지정된 C 언어 및 해당 라이브러리의 기능만 사용해야 합니다. 표준은 언어 확장을 제공하는 구현을 허용하며 이러한 확장의 사용은 이 규칙에 따라 허용됩니다. 언어 확장을 사용하는 경우를 제외하고 프로그램은 다음을 수행해서는 안 됩니다. - The Standard에 설명된 언어 구문을 위반하는 내용이 포함 - 표준에 의해 부과된 제약 사항을 위반하는 내용을 포함 |
1.3 | 정의되지 않았거나 지정되지 않은 중요한 동작이 발생하지 않아야 합니다. | 일부 정의되지 않고 지정되지 않은 동작은 특정 규칙에 따라 처리됩니다. 이 규칙은 정의되지 않은 기타 모든 중요하고 지정되지 않은 동작을 방지합니다. MISRA C 지침의 대부분은 정의되지 않고 지정되지 않은 특정 동작을 방지하도록 설계되었습니다. |
1.4 | Emergent 언어 기능을 사용해서는 안 됩니다. [AMD2] 신규 |
C 표준 업데이트에는 새로운 언어 기능이 도입되었습니다. 다음은 사용되지 않습니다: - _Generic 연산자. - _Noreturn 함수 지정자 및 <stdnoreturn.h> 헤더 파일. - _Atomic 유형 지정자, _Atomic 유형 한정자 및 <stdatomic.h>에서 제공하는 것으로 지정되는 기능 - _Thread_local 저장 클래스 지정자와 <threads.h>에서 제공하는 것으로 지정되는 기능 - _Alignas 정렬 지정자, _Alignof 연산자 및 <stdalign.h> 헤더 파일. - __STDC_WANT_LIB_EXT1__을 '0'으로 정의하는 것 외에는 Annex K(경계 확인 인터페이스)의 기능을 사용하지 않아야 합니다. |
1.5 | Obsolescent 언어 기능은 사용하면 안 됩니다. [AMD3] 신규 |
Obsolescent language features는 언어의 기능 중에서 이제는 거의 사용되지 않는 기능들을 가리킵니다. 이러한 기능들은 다른 기능들과 중복되거나, 현재 표준으로 정의된 기능들과 비교했을 때 덜 효율적이거나 불필요한 경우가 많습니다. 이러한 기능들은 새로 작성되는 프로그램에서 권장되지 않습니다. 더 이상 사용되지 않는 기능(Obsolescent language features)은 C 표준의 미래 언어 방향 및 미래 라이브러리 방향 섹션에서 확인된 기능입니다. 기능이 더 안전하거나 더 나은 대안으로 대체되거나 바람직하지 않은 동작을 나타내는 것으로 간주되면 C 표준에 의해 더 이상 사용되지 않는 것으로 선언됩니다. C 표준의 특정 버전에서 더 이상 사용되지 않는 것으로 선언된 기능은 이후 버전에서 철회될 수 있습니다. |
728x90