소프트웨어 개발(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