소스 파일,코드가 UTF-8 인 경우 한글 사용이 utf-8 로 되지 않는 경우.

Configuration Properties - C/C++ - General - Command Line - /utf-8

/utf-8 옵션을 추가해주면 한글을 문자열로 입력할 경우 utf-8 로 지정되어 이를 ansi 로 변환 사용하면 된다.

콘솔창에 utf-8 로 printf 하려면 ::SetConsoleOutputCP ( CP_UTF8 ); 초기화 한번해준다.


Debug 모드는 사용하지 말자. 언제나 항상 release 에서 개발하고 debugging 도 release 에서 하자.


이유? Debug 와 release 와의 혹시 모를 차이점으로 인해 배포시 생각치 못한 bug 가 발생 할 수 있으므로...
Debug code 작성시 별도의 전처리기 지시자를 만들어 조건문으로 사용하면 된다.
( 변수 초기화 반드시 지키기!! )
release 에서도 Debugging 정보를 포함시켜 컴파일 하면 Debugging 시 Source Code 를 볼 수 있다.

#define ____Debug_Execution____      0

#if ____Debug_Execution____ == 0
#define ____Program_Once_Run____
#define __DEBUG_CODE__(x)
#else

#undef ____Program_Once_Run____
#define __DEBUG_CODE__(x) x
#endif

Configuration Properties - C/C++ - General - Debug Information Format - Disabled
Configuration Properties - Linker - Debugging - Generate Debug Info - No

모든 컴파일 경고는 다 켜두자. 경고 무시하다 큰 코 다칠 수가 있다.
#pragma 로 warn 수동 제어하는 방법도 있다.


#pragma warning ( push , 0 ) // 수치는 Warning Level
// 여기에는 주로 include 가 들어간다.
#pragma warning ( pop )

Configuration Properties - C/C++ - General - Warning Level
-
Level 4 (/W4)

Optimization 을 사용하지 말자. 물론 요즘 컴파일러 성능이 좋다하지만, code 로 직접 최적화 하자.

요즘의 복잡스러운(OOP) 코드로 인해 컴파일러 자체 버그로 인해 의도하지 않은 결과(object)가 돌출 할 수 있으므로 최적화를 끄자.
물론 컴파일러의 버그를 Patch 하면 그만이다. 더군다나 컴파일러의 성능이 아무리 뛰어 나다 하여도,
코딩을 잘못 하면 아무런 효과가 없다. 코드 최적하를 하다보면 코딩 능력 또한 향상 된다.
경우에 따라서 단지 코드의 실행 순서(LINE)만 바꾸어도 속도 향상에 도움이 되는 경우가 종종 있다.

Configuration Properties - C/C++ - Optimization - Optimization -
Disabled (/Od)
Configuration Properties - Linker - Optimization - References - Keep Unreferenced Data (/OPT:NOREF)
Configuration Properties - Linker - Optimization - Enable COMDAT Folding - Do Not Remove Redundant COMDATs (/OPT:NOICF)

*.ipdb , *.iobj 파일이 생성되지 않게 하라면...

Configuration Properties - Linker - Optimization - Link Time Code Generation - Use Link Time Code Generation (/LTCG)

종속적인 DLL 파일을 별도 배포 ( 포함 및 설치 ) 하지 않아도 실행(구동) 될 수 있도록 하자.

Configuration Properties - C/C++ - Code Gerneration - Runtime Library - Multi-threaded (/MT)

최종 사용자는 한방에 실행 되는 것을 원한다. 실행을 하기 위해서 이것(windows installer) 저것(.NET Framework)

설치하기 싫어 하므로 부가적인 설치 및 파일이 없어도 바로 실행 할 수 있도록 해야 피곤하지 않는다.

사용하고 있는 외부 라이브러리가 위의 option 으로 컴파일 되어 있는지 확인하자.

Visual Studio 듀얼코어, 쿼드코어 CPU를 활용한 컴파일(빌드) 속도 향상 방법

 

변수나 함수아래에 문법체크인지 뭔가 하면서 빨간 밑줄이 생길 경우 이를 제거하려면 아래 부분을 변경하면 된다.

Tools -> Options -> Text Editor -> C/C++ -> Advanced -> IntelliSense -> Disable Squiggles -> True


Solution Explorer 에서 파일을 선택하면 미리보기가 나타나게 된다. 이를 제거하려면 아래 부분을 변경하면 된다.

Tools -> Options -> Environment -> Tabs and Windows -> Preview Tab (해제)



LINE COUNT : Ctrl+Shift+F Use Regular Expressions Check ^(?([^\r\n])\s)*[^\s+?/]+[^\n]*$


사용해 볼 만한 IDE

https://code.visualstudio.com/

https://github.com/visualfc/liteide

http://www.codelite.org/


'Technical Report' 카테고리의 다른 글

winapi - 한글 영문 전환  (0) 2011.07.14
DEBUG 용 CONSOLE WINDOW 띄우기  (0) 2011.05.17
Tree-View Control의 TVS_CHECKBOXES 속성 문제점  (0) 2011.03.26
배치파일  (0) 2009.07.30
console 에서 wprintf 함수로 한글 출력  (0) 2009.07.20