4. 모듈 규정

4. 1 명명 관례

규정

  1. 모든 모듈 이름은 소문자, 숫자 및 밑줄로 구성되어야 합니다. 헤더 및 소스 파일 이름에 공백을 사용하면 안됩니다.
  2. 모든 모듈 이름은 앞 8자에 의해 고유해야 하며 헤더 및 소스 파일 이름에 대해 각각 .h와 .c로 끝나야 합니다.
  3. 모듈의 헤더 파일 이름은 C 또는 C++ 표준 라이브러리의 헤더 파일 이름을 공유해서는 안 됩니다. 예를 들어 모듈의 이름은 “stdio” 또는 “math“로 지정해서는 안됩니다.
  4. main() 함수를 포함하는 모듈은 소스 파일 이름의 일부로 “main”라는 단어를 포함해야 합니다.

예시

/** @file crc.h
*
* @brief Compact CRC library for embedded systems for CRC-CCITT, CRC-16, CRC-32.
*
* @par
* COPYRIGHT NOTICE: (c) 2000, 2018 Michael Barr. This software is placed in the
* public domain and may be used for any purpose. However, this notice must not
* be changed or removed. No warranty is expressed or implied by the publication
* or distribution of this source code.
*/

#ifndef CRC_H
#define CRC_H

// Compile-time selection of the desired CRC algorithm.
//
#if defined(CRC_CCITT)

#define CRC_NAME "CRC-CCITT"
typedef uint16_t crc_t;

#elif defined(CRC_16)

#define CRC_NAME "CRC-16"
typedef uint16_t crc_t;

#elif defined(CRC_32)

#define CRC_NAME "CRC-32"
typedef uint32_t crc_t;

#else

#error "One of CRC_CCITT, CRC_16, or CRC_32 must be #define'd."

#endif

// Public API functions provided by the Compact CRC library.
//
void 	crc_init(void);
crc_t 	crc_slow(uint8_t const * const p_message, int n_bytes);
crc_t 	crc_fast(uint8_t const * const p_message, int n_bytes);

#endif /* CRC_H */

/*** end of file ***/

이유

멀티플랫폼 개발환경(예 : 유닉스와 윈도우)은 예외적인 상황이 아니라 일반적인 것입니다. 모듈 이름에 대소문자를 섞어 사용하는 것은 다른 운영체제 걸쳐 문제를 일으킬 수 있으며, 유사한 이름이지만 대소문자가 다른 파일은 프로그래머로 하여금 혼동을 일으킬 수 있어 오류가 발생하기 쉽습니다.

파일 이름에 'main'을 포함하는 것은 소프트웨어 구성이 여러 개인 프로젝트에서 유용한 것으로 입증되었으며, 코드 관리자에게 도움이 됩니다.

시행

자동화된 도구를 이용하여 모든 파일 이름이 이 규정을 따르고 있는지 확인해야 합니다.

 

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

[ECCS] 소스 파일  (0) 2020.10.17
[ECCS] 헤더 파일  (0) 2020.10.10
[ECCS] 모듈 명명 관례  (0) 2020.10.10
[ECCS] 출력되지 않는 문자  (0) 2020.10.10
[ECCS] 탭  (0) 2020.10.09
[ECCS] 들여쓰기  (0) 2020.10.09

+ Recent posts