프로그래밍에 관한 첫 포스팅을 하기에 앞서서 한가지 규칙을 정하려고 한다. 

코드의 가독성을 위해서 간단한 App Notation 표기법카멜 표기법을 적용해서 코드를 작성하고 포스팅을 하려고 한다. 대표적으로 변수, 함수, 상수, 네임스페이스, 클래스 및 구조체, 매크로 등이 있으며, 새로운 규칙이 추가되는대로 글을 수정해서 업데이트할 계획이다. 

 


작명 규칙 목차

  • AppNotation 및 카멜 표기법, OOP
  • 변수
  • 함수
  • 상수
  • 네임스페이스
  • 클래스 또는 구조체
  • 매크로

AppNotation

데이터의 자료형이 아닌 데이터의 논리적인 상태를 명시하는 표기법이다. 

 

Prefix Description
n Count 변수
d 두 값의 차이를 담은 변수
us 안전이 확인되지 않은 변수(Unsafe) : 검증이 안된 변수
s 안전이 확인된 변수(Safe)

 

n은 단순히 어떠한 과정을 카운트하기 위한 변수일 때 nNum, nCount 처럼 접두어로 표기해서 사용한다. d는 어떠한 변수들의 비교 및 연산 결과값을 담는 변수를 의미하며, us는 막 사용자에게 입력받은 변수로 해당 입력 값이 해당 변수의 타입과 일치한 지(ex. int형에 float형이 입력됐거나 등) 검증이 되지 않은 변수에 붙여준다. s는 safe의 의미로 검증이 끝난 변수이다.

 


 

카멜 표기법 (Camel Notation)

표기법이 낙타와 같다고해서 붙여진 명칭이다. 보통 소문자로 시작되며 단어의 구분은 대소문자로 한다.

 

ex) nMyBlog, getMyValue 등

 

 

 


 

OOP

접두어
데이터 타입
g_
네임스페이스의 글로별 변수
m_
클래스의 멤버 변수
s_
클래스의 static 변수
c_
함수의 static 변수

 

다른 타입 접두어는 앞에 붙인다. (예: m_lpszName - 클래스 멤버 변수인 문자열 포인터)

이 접두어들은 당연히 private 멤버에 사용하는 것이다. 절대 public으로 오픈하지 말 것.

 

 

 


 

변수

변수는 Camel 표기법을 적용해서 소문자로 시작한다.

여러 단어로 될 경우 각 단어의 첫 글자를 대문자로 표기한다.

 

  • int variable;
  • int multiWordVariable;

 


 

함수

함수는 변수에서 사용한 것과 같이 동일한 규칙을 적용한다. 

대신 변수와 구별하기 위해서 ()를 붙인다.

 

  • getMyValue();
  • setMyValue();

 


 

상수

상수는 모두 대문자를 사용한다. 여러 단어로 된 단어는 밑줄로 구분해서 표기한다.

 

  • const int CONSTANT = 1;
  • const int MULTI_WORD_CONSTANT = 2;

 

 


네임스페이스 (namespace)

namespace는 두 글자 접미사 'NS'를 가진다. 

나머지는 변수 작명 규칙과 동일하게 Camel 표기법을 사용한다.

 

  • namespace namesNS
  • namespace multiWordNamesNS

 

 


클래스 및 구조체

클래스 또는 구조체는 대문자로 시작한다. 

규칙은 마찬가지로 Camel 표기법을 적용한다.

 

  • class ClassName
  • struct StructName

 

 


매크로

매크로는 모두 대문자를 사용한다. 

여러 단어로 된 매크로는 밑줄로 구분한다.

 

  • #define SETCOLOR_RGB(a, r, g, b)
  • #define MAX 100