5. 데이터형 규정

5. 2 고정 크기 정수

규정

  1. 정수형의 크기가 중요하다면 고정 길이 데이터형을 char, short, int, long, 또는 long long형 대신 사용해야 한다. 부호 없는 또는 부호 있는 고정 길이 정수형은 아래 표와 같다.
Integer Width Signed Type Unsigned Type
8 bits int8_t uint8_t
16 bits int16_t uint16_t
32 bits int32_t uint32_t
64 bits int64_t uint64_t
  1. 키워드인 short, long은 사용할 수 없다.
  2. 키워드인 char의 사용은 문자열에 관한 선언 및 연산으로 제한되어야 한다.

이유

C90 표준에서는 의도적으로 char, short, int, long 그리고 long long 형에 대해 고정되지 않은 크기를 허용함으로써 코드 이식성에 문제를 야기했습니다. C99 표준에서도 이 문제를 해결하지 않았지만, 위 테이블에서 보듯 stdint.h 헤더 파일에 정의된 정수형을 공개했습니다.

 

이식 가능한 고정 크기 정수형에 대한 또 다른 참조 문서:

barrgroup.com/embedded-systems/how-to/c-fixed-width-integers-c99

C99 표준과 호환되지 않는 컴파일러의 경우 typedef를 이용해 고정크기 데이터형을 정의하는 것이 허용됩니다. 필요하다면 컴파일시 확인하는 과정이 꼭 필요합니다.

시행

빌드시 매번 자동화된 도구를 이용해 short, long 키워드에 대한 체크를 해야 합니다. 코드 검토시 또 다른 규정 준수에 대해 검토해야 합니다.

 

'Digital Developer > Embedded C Coding Standard' 카테고리의 다른 글

[ECCS] 고정 크기 정수  (0) 2020.10.18
[ECCS] 데이터형 명명 관례  (0) 2020.10.17
[ECCS] 파일 템플릿  (0) 2020.10.17
[ECCS] 소스 파일  (0) 2020.10.17
[ECCS] 헤더 파일  (0) 2020.10.10
[ECCS] 모듈 명명 관례  (0) 2020.10.10

5. 데이터형 규정

5. 1 명명 관례

규정

  1. 구조체(structure), 유니언(union) 및 열거(enumeration)를 포함한 모든 새로운 데이터형의 이름은 소문자와 단어 내부의 밑줄로만 구성되어야 하며 ‘_t‘로 끝나야 한다.
  2. 모든 새로운 구조체, 유니언형 및 열거형은 typedef 통해 명명되어야 한다.
  3. 모든 public 데이터형의 이름은 모듈 이름과 밑줄을 앞에 붙여야 한다.

예시

typedef struct
{
  uint16_t count;
  uint16_t max_count;
  uint16_t _unused;
  uint16_t control;
  
} timer_reg_t;

이유

데이터형 이름과 변수 이름은 종종 유사합니다. 예를 들어, 주변장치에서 타이머 제어 레지스터 세트가 'timer_reg' 이름을 호출합니다. 레지스터 레이아웃을 정의하는 구조체 정의를 구분하기 위해서는 'timer_reg_t'와 같이 고유한 이름으로 새로운 유형을 만든는 것이 중요합니다. 필요한 경우 이같은 유형을 사용하여 'timer_reg_shadow'같은 타이머 레지스터의 복사본을 만들 수 있습니다.

시행

각 빌드 전, 자동화 도구를 사용해 새 소스나 수정된 소스 코드를 검색하여 키워드 struct, union 또는 enum이 typedef 문이나 익명의 선언 내에서만 사용되는지 확인해야 합니다. 코드 검토시 새로운 형(type)에 대한 명명 규정을 시행해야 합니다.

 

'Digital Developer > Embedded C Coding Standard' 카테고리의 다른 글

[ECCS] 고정 크기 정수  (0) 2020.10.18
[ECCS] 데이터형 명명 관례  (0) 2020.10.17
[ECCS] 파일 템플릿  (0) 2020.10.17
[ECCS] 소스 파일  (0) 2020.10.17
[ECCS] 헤더 파일  (0) 2020.10.10
[ECCS] 모듈 명명 관례  (0) 2020.10.10

4. 모듈 규정

4. 4 파일 템플릿

규정

  1. 헤더 및 소스 파일에 대한 템플릿은 프로젝트 수준에서 유지 관리되어야 한다.

이유

새 파일을 작성할 때 템플릿을 이용하면 첫머리 코멘트 블록의 일관성이 보장되고, 저작권 고지 사항을 확실히 할 수 있습니다.

시행

파일 형식의 일관성은 코드 검토시 시행되어야 합니다.

 

'Digital Developer > Embedded C Coding Standard' 카테고리의 다른 글

[ECCS] 고정 크기 정수  (0) 2020.10.18
[ECCS] 데이터형 명명 관례  (0) 2020.10.17
[ECCS] 파일 템플릿  (0) 2020.10.17
[ECCS] 소스 파일  (0) 2020.10.17
[ECCS] 헤더 파일  (0) 2020.10.10
[ECCS] 모듈 명명 관례  (0) 2020.10.10

+ Recent posts