티스토리 뷰
반응형
4. 모듈 규정
4. 1 명명 관례
규정
- 모든 모듈 이름은 소문자, 숫자 및 밑줄로 구성되어야 합니다. 헤더 및 소스 파일 이름에 공백을 사용하면 안됩니다.
- 모든 모듈 이름은 앞 8자에 의해 고유해야 하며 헤더 및 소스 파일 이름에 대해 각각 .h와 .c로 끝나야 합니다.
- 모듈의 헤더 파일 이름은 C 또는 C++ 표준 라이브러리의 헤더 파일 이름을 공유해서는 안 됩니다. 예를 들어 모듈의 이름은 “stdio” 또는 “math“로 지정해서는 안됩니다.
- 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' 카테고리의 다른 글
리디북스, 애플 펜슬 더블탭 지원 (0) | 2020.10.11 |
---|---|
[ECCS] 헤더 파일 (0) | 2020.10.10 |
[ECCS] 출력되지 않는 문자 (0) | 2020.10.10 |
[ECCS] 탭 (0) | 2020.10.09 |
[ECCS] 들여쓰기 (0) | 2020.10.09 |
댓글