ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 구글 C++ 스타일 가이드 - 이름 짓기
    프로그래밍/c++ 2014. 5. 2. 23:57
    반응형

    구글 C++ 스타일 가이드 - 이름 짓기

    (Google C++ Style Guide - Naming)


    1. 일반적인 이름 규칙


    함수, 변수, 파일 이름은 설명적이어야 하므로 가급적 축약하지 않는다. 

    타입과 변수는 명사, 함수는 명령 동사로 쓴다.


    - 이름 짓기


    이름은 가급적 설명적이어야한다. 다음은 좋고 나쁜 예이다.


    - 약어


    프로젝트 외에서도 잘 알려진 약어가 아니라면 축약하지 사용하지 않는다.


    2. 파일 이름


    파일 이름은 모두 소문자이고 밑줄(_) 이나 대시(-)를 포함할 수 있다. 하지만 대체적으로 _를 선호한다.


    인라인 함수는 반드시 .h 파일에 있어야 한다. 인라인 함수가 매우 짧으면 .h 파일에 바로 넣는다. 하지만 코드가 많으면 –inl.h로 끝나는 별도 파일에 넣는다. 즉 클래스에 인라인 코드가 많으면 해당 클래스는 다음 세 파일로 구성할 수 있다.


    url_table.h      // 클래스 선언

    url_table.cc     // 클래스 정의

    url_table-inl.h  // 많은 인라인 함수가 포함된 파일


    3. 타입 이름


    단어의 시작은 대문자로, 그 외에는 소문자로 쓰며 밑줄(_)은 사용하지 않는다. 

    클래스, 구조체, 타입 정의, 열거형과 같은 모든 타입 이름은 이름 규칙이 같다.


    4. 변수 이름 
     
    변수 이름은 모두 소문자이며 단어 사이에 밑줄을 쓴다. 클래스 멤버 변수는 마지막에 밑줄을 붙인다. 
     

    - 구조체 변수

    구조체 데이터 멤버 이름 규칙은 일반 변수와 같으나 클래스 데이터 멤버와 달리 끝에 밑줄을 붙이지 않는다.


    5. 상수 이름


    각 단어는 대문자로 시작하고, 이름에 k를 접두어로 붙인다.


    6. 함수 이름


    일반 함수는 대소문자를 섞어 쓰며 접근자와 변경자(get/set 함수)는 변수 이름과 일치시킨다. 

    즉, MyExcitingFunction(), MyExcitingMethod(), my_exciting_member_variable(), set_my_exciting_member_variable().


    - 일반 함수


    새 단어의 시작마다 대문자를 쓴다. 밑줄은 사용하지 않는다.


    - 접근자와 변경자(get/set 함수)


    매우 짧은 인라인 함수에는 소문자를 사용할 수도 있다. 예를 들어 매우 값싼 연산을 하므로 루프에서 호출하더라도 그 값을 보관하지 않는 함수라면 소문자를 사용해도 된다.


    7. 네임스페이스 이름


    네임스페이스 이름은 모두 소문자이고 프로젝트 이름에 기초하며 가능하면 디렉터리 구조도 바탕으로 한다. 

    즉, google_awesome_project. 네임스페이스와 이름 짓는 방법에 대해서는 네임스페이스를 참조한다.


    8. 매크로 이름


    일반적으로 매크로는 사용하지 않아야 한다. 하지만 절대적으로 필요하다면 이름에는 모두 대문자와 밑줄을 쓴다.


    8. 열거형 이름


    열거형은 상수(접두어로 k) 또는 매크로 이름(모두 대문자) 규칙 중 하나를 선택한다.(kEnumName 또는 ENUM_NAME)


    열거자 각각은 상수처럼 이름 짓는 것을 선호하지만 매크로처럼 할 수도 있다. 열거형 이름 UrlTableErrors와 AlternateUrlTableErrors는 타입이므로 대소문자를 섞어 쓴다.


    반응형

    '프로그래밍 > c++' 카테고리의 다른 글

    [C++]std::addressof의 존재 이유  (2) 2014.06.29
    알아볼 c++11 문법  (0) 2014.05.16
    C++11: decltype  (0) 2014.05.16
    [c++11] std::mutex  (0) 2014.04.27
    C++ 구조체 멤버를 숨기는 기법 Pimpl  (0) 2013.03.28
Designed by Tistory.