4. 코딩 가이드를 알아보기 전에
구글은 실력이 뛰어난 개발자들이 있는 기업!
물론 코딩 가이드에는 정답이 없다!
스스로 장단점의 기준을 잡아서 판단해야 함!
※ 모든 내용을 소개하지는 않음 ※
※ 모든 내용은 아래에 있는 사이트를 참고! ※
http://jongwook.kim/google-styleguide/trunk/cppguide.xml
7. http://blog.naver.com/ruvendix
#define 방어
단일 헤더 파일도 존재하지만!
.cc와 .h는 운명공동체!
※ .cc는 UNIX의 C++ 파일 ※
#pragma once 대신!
#define 방어를 사용하라!
소스 파일을 source(src) 또는 script 등 폴더를 만들어서 모으고!
소스 파일의 경로에는 그 폴더를 생략한 경로를 작성 (즉, 기본 폴더는 생략)
헤더 파일은 include(inc) 또는 header 등으로 폴더를 만듬!
9. http://blog.naver.com/ruvendix
인라인 함수
함수가 10줄 이하면
인라인 함수로 만들어라!
하지만 과도한 인라인 함수는 프로그램을 느리게 만들 수 있음!
선택문, 반복문, 가변 인자, 가상 함수, 재귀 함수는 인라인 불가!
어차피 인라인 함수는 컴파일러 또는 IDE가 알아서 판단!
인라인 메서드는 헤더 파일에서 처리하되,
인라인 메서드가 많아지면 –inl.h에 따로 모아라!
매크로 함수보다는 인라인 함수를 이용!
※ IDE는 통합 개발 환경을 뜻함 ※
10. http://blog.naver.com/ruvendix
매개변수의 순서
매개변수는
입력 -> 출력 순서!
입력 매개변수는 값을 참조만 하려는 목적!
출력 매개변수는 값을 변경시키려는 목적!
입력은 주로 일반 변수, const 참조자이고
출력은 주로 포인터가 됨!
새로운 매개변수가 추가되어도 이 순서는 지켜야 함!
하지만 자신만의 스타일이 있다면 꼭 따를 필요는 없음!
46. http://blog.naver.com/ruvendix
예외 처리
C++ 방식의 예외 처리는
되도록이면 삼가라!
try throw catch는 되도록이면 사용하지 마라!
스택 되감기 때문에 디버깅이 더 힘들어질 수 있다!
하지만 처음부터 C++ 예외 처리를 이용하는 프로젝트도 있으므로
프로젝트의 방향에 따라 유연하게 적응하라!
53. http://blog.naver.com/ruvendix
정수 형식
정수는 되도록이면
int를 사용하라!
다른 정수 형식이 필요하다면 stdint.h를 이용하라!
되도록이면 unsigned는 사용하지 마라!
for (unsigned int i = foo.Length()-1; i >= 0; --i)
이렇게 실수할 확률이 높다!
unsigned는 최솟값이 0이라는 사실을 잊지 말자!
70. http://blog.naver.com/ruvendix
함수 이름
함수 이름은 전부
대문자로 시작하라!
함수 이름은 대문자로 구분하라!
프로그램이 종료되는 함수는 OrDie를 붙여라!
접근 함수인 get(), set()은 소문자로 만들어서 다른 함수와 구분하라!
예) void TestFunction(int argument), get_field(void), ExitOrDie(void)
72. http://blog.naver.com/ruvendix
열거형 이름
열거형 이름은 전부
k를 접두사로 사용하라!
열거형 이름을 매크로 상수처럼 사용하는 프로젝트가 있다면
그냥 그 프로젝트를 따르되, 충돌이 발생하면 이 규칙을 적용하라!
열거형 이름 작성 규칙은 상수 이름과 동일하다!
예) enum TestEnum { kOneEnum, kTwoEnum }
80. http://blog.naver.com/ruvendix
그 외의 나머지
함수의 선언은 되도록이면 한 줄에서 끝내라!
한 줄이 넘어가면 보기 좋게 정리하라!
if가 한 줄이면 if (true) return;이렇게 작성하라!
비어있는 반복문은 continue로 한 줄에 표현하라!
while (true) continue