Reserved Names


C언어는 클래스 단위가 아니고, 전역변수나 함수들이 존재하기 때문에 엄격한 이름 규칙(Naming Convention)이 필요하다.

다음과 같은 상황을 가정해보자

   1. 여러 헤더파일을 포함시킬텐데, 포함시킨 헤더파일들에서 함수명 || 매크로명 || 전역변수명이 중복 선언되었다면?

   2. 포함시킨 헤더파일과 내 소스코드에서 함수명 || 매크로명 || 전역변수명이 중복되었다면?


이를 방지하기위한 규칙

   1. __(Double Underscroe), A_(대문자+Underscore)는 예약된 이름으로 사용한다.

   2. is || to로 시작하는 이름은 테스트를 하거나 변환하기위한 용도로 사용한다.

   3. LC_로 시작하는 이름은 추가적인 로컬 매크로 정의를 위해 사용한다.

   4. SIG로 시작하는 이름은 SIGNAL NAME을 위해 사용된다.

   5. _t로 끝나는 이름은 추가적인 타입임을 명시하기 위해 사용된다.



각 헤더파일에 따른 접두어(참고)

  • dirent.h     - 'd_'
  • fcntl.h       - 'l_', 'F_', 'O_', 'S_'
  • grp.h        - 'gr_'
  • limits.h      - '_MAX'
  • pwd.h       - 'pw_'
  • signal.h     - 'sa_', 'SA_'
  • sys/stat.h   - 'st_', 'S_'
  • sys/times.h - 'tms_'
  • termios.h   - 'c_', 'V_', 'I_', 'O_', 'TC_', 'B_'