기본 콘텐츠로 건너뛰기

[링크] c++ 코딩 스타일

http://btd86.tistory.com/73 - C++ 코딩 스타일

코딩 규칙


코딩 할때 규칙을 정하기로 했습니다.

1. 제어문은 아래와 같이 소괄호를 한칸 띈다.
   if (i == 0)
   while (TRUE)
   switch (i)
   for (int i = 0; i < 10; i++)

2. 괄호에 빈칸을 삽입 하지 않는다.
   if ( i == 0 ) (X) , if (i == 0) (O)
   GetLogger()->Info( _T("Test") ); (X), GetLogger()->Info(_T("Test")); (O)
   if ( (i == 0) || (j == 1) ) (X), if ((i == 0) || (j == 1)) (O)

3. switch ~ case 문
   switch ()
   {
   case 1:
       break;
   case 2:
       break;
   case 3:
       break;
   }

4. 반환 값처리는 바로바로
   // no
   if (hWnd != NULL)
   {
   }
   else
   {
       return false;
   }

   // yes
   if (hWnd == NULL)
       return false;

5. 빈줄 탭이나 공백문자 제거(trim)

6. 전역 변수는 'g_' 을 사용한다.

7. 클래스의 멤버 변수는 'm_' 을 사용한다.

8. 포인터(*) 및 참조(&) 표기는 변수 앞에 붙여서 선언한다.

9. #define enum 및 const 는 대문자와 단어 사이에 '_' 를 붙인다.

10. 각 변수 및 함수의 이름은 대문자로 시작한다.
   int nTypeMax, char szFileInfomation, (O)
   int ntype_max, char szfile_infomation (X)

11.#define 보다 const 형 또는 static const 형을 되도록 사용한다.
   static const int MAX_CARD = 1000

12.BOOL형 역방향형 변수는 사용하지 않는다.
   BOOL bError (O) BOOL bNoError (X)

13.bool, true, false 는 사용하지 않고 BOOL, TRUE, FALSE 로 사용한다.
(BOOL등은 4바이트 자료형이고 bool등은 1비트(실제로는 1바이트) 자료형이다. 32비트 운영체계의 경우 속도와 비교하는데 걸리는 성능 부분에도 유리하고 알아보기도 좋기 때문에 위와 같은 대문자로 된 자료형을 사용한다.)

14.함수의 인자는 NULL 입력이 가능하다면 포인터(*)를 이용하고 그렇지 않다면 참조(&)을 사용한다.
(포인터 방식의 최대 단점은 NULL을 원하지 않은 경우에도 NULL이 입력될 수 있다는 점이다. 따라서 이러한 것을 근본적으로 막기 위해서는 NULL이 입력되지 않기를 원하는 함수의 인자는 참조를 사용한다.)

15.변수 또는 함수 선언 시 TAB으로 정렬하지 않는다.
(TAB문자를 이용한 정렬은 보기가 좋기는 하지만 결국 전체 스타일은 망가뜨린다. 또한 특정 변수의 추가 / 제거시 다른 변수들의 탭이 엉클어져 다시 정돈하는 과정이 필요하므로 불필요한 편집 작업을 늘린다.)

16.일반적으로 i++ 은 사용이 가능하지만 ++i 는 사용하지 않는다.
(속도를 위해서 후자를 사용하는 사례들이 가끔 있지만 사실상 컴파일러의 최적화로 인하여 위 내용의 속도의 차이가 존재하지 않는다. 따라서 가독성과 통일성을 이유로 전자만 사용한다.)

댓글

이 블로그의 인기 게시물

[c#.net] WPF 사용 중 xaml관련 실행시 오류 와 대처 방법

wpf 사용 중 xaml관련 실행시 오류 가 발생해서 자그마치 2일을 소비 했다..--;; 오류 내용은 아래와 같다. ================================== 'System.Windows.Markup.XamlParseException' 형식의 첫째 예외가 PresentationFrameWork.dll에서 발생했습니다. 추가 정보: '지정된 바인딩 제약 조건과 일치하는 'PapaZone.MainWindow' 형식에 대한 생성자 호출에서 예외가 throw 되었습니다.' 줄 번호 '21' 및 줄 위치 '9' 이 예외에 대한 처리기가 있으면 프로그램을 안전하게 계속할 수 있습니다. [] 이 예외 형식이 throw되면 중단 ================================== 위 Xaml 오류 메세지만으로는 내용 추적 불가하여, 도대체 뭔가 했다. 검색해도 뚜렷한 답변은 없었지만, 여러가지 의견을 종합해 보면 아래와 같다. 1. xmlns 관련 파일 과 관련된 파일 로딩 실패 이거나, 2. 신규로 추가된 namespace 에 속한 태그 사용시 오류로 판단되어 태그 하나씩 삽입하며 테스트 해봐야 한다고 함. 해결한 지금에 원인을 보면, xaml 에서 clr-namespace 로 추가된 항목들이 로딩에 실패해서 발생한 것이며, 추가된 항목은 있었으나, 이것과 연결된 파일이 없어서 로딩되지 않는 것이 문제였다. 오늘도 즐거운 하루~~

[MSSQL] SQL Server 에 원격 접속을 못하는 경우 조치 방법

[MSSQL] SQL Server 에 원격 접속을 못하는 경우 조치 방법 내부 오류 추적 결과 다음과 같이 나옴. [Microsoft][ODBC Driver 13 for SQL Server]TCP Provider: 대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다. SqlState : 08001, NativeError : 10061 오류 원인과 처리 1.SQL 서버 로그인 계정 틀린 경우 -> A.SQL Managerment Studio에서 사용할 DB 접속 '로그인' 사용할 계정의 아이디/암호 확인 2.TCP/IP 접속 권한이 없는 경우 -> A.SQL Server 구성 관리자를 실행에서 TCP/IP 허용 되어 있는지 확인 B. 서비스 포트 값이 (보통 1433) 맞는지 확인 C. 외부에서 접속하는 경우에는 방화벽 허용 되엉 있는지 확인 C. 서비스 재시작 3.Windows 인증 모드만 허용 인 경우 -> A.SQL Managerment Studio에서 사용할 DB 접속하고, 우클릭 하여 속성 정보 확인해서 B.연결에서 인증모드 '로그인' 사용할 계정의 아이디/암호 확인 4.'exec Sp_ReadErrorLog' 명령어를 사용해서, 로그인 실패 로그를 확인해서 원인을 분석한다.

osx 터미널에서 이미지 파일 보기 open

맥(OSX) 터미널에서 이미지파일 바로 보기 UI의 시대에 누가 터미널을 사용하려나 하겠지만, 여러가지 작업을 하다보면, 터미널에서만 지속적으로 작업을 할 경우가 자주 발생한다. 간단한 것은 커맨드라인 명렬을 모른다해도, 경로만 알면,  UI 프로그램으로 약간의 삽질(?)을 통해 해당 프로그램을 수행하면 된다. 하지만, 터미널에서 주로 작업을 수행하고, 자주 반복되는 일이라면 명령어를 알아놓는게 훨씬 유리할 터... 터미널에서 쓰다 보니, 다른 건 비교적 unix 명령어로 해결이 되는데, 이미지 파일 보기 같은 경우는 텍스트 기반 프로그램에서는 쉽지가 않다. 결국, 관련 명령어를 검색 했고, 이전에도 몇번 언급을 했지만, 결국 타고난 능력(여러번의 기억의 망각)으로 다시 검색하게 되고, 또 다시 알게되었다. open 또 찾아보게 될줄이야..--;; 난 아래 2가지 형태를 가장 많이 사용하는 듯 open image/log.png    --> 파일과 관련된 Viewer? 띄우기 보통은 Preview가 뜸 open .    --> 현재 폴더 위치로 된 Finder 아래 명령들에 대한 설명들도 추가로 있으니, 추가적인 설명이 필요하면 맨 아래쪽 링크를 참고 하면 됨. open  pbcopy pbpaste mdfind screencapture launchctl say diskutil brew 관련한 검색 결과중 나중에 또 보게 된다해도 괜찮을 것이 보여서 글을 하나  남긴다. 제목 Eight Terminal Utilities Every OS X Command Line User Should Know 관련 링크:  http://lifehacker.com/eight-terminal-utilities-every-os-x-command-line-user-s-1593793109