Notice
Recent Comments
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 안드로이드
- 스시
- git
- c#
- chart
- 여행지도
- Android
- 갤럭시 노트
- 깃허브
- 서면 맛집
- 깃
- 경성대 맛집
- chrome
- 부경대 맛집
- 타이젠
- 태국지도
- 태국여행준비물
- 태국 여행정보
- github
- 일정관리
- 태국여행
- 자바
- 크롬
- 갤럭시 노트 해외판
- 맛집
- 소프트웨어
- Tizen
- java
- 삼성소프트웨어멤버십
- SDK
- Today
- 0
- Total
- 211,887
DREAM IT, WISH IT, DO IT
[Effective C++] 컴파일러를 더 가까이 하자. 본문
Effective C++
항목2 : #define 을 쓰려거든, const, enum, inline을 떠올리자.
- 가급적 선행 처리자보다 컴파일러를 더 가까이 하자.
- 즉, 매크로 보다는 상수를 사용하자.
#define VALUE 1.123
매크로를 사용하면 컴파일러는 VALUE 라는 심볼릭 네임으로 확인이 불가능합니다. 컴파일러로 넘어가기전에 선행 처리자가 전부 상수로 바꿔버리기 때문입니다.
const double Value = 1.23;
언어 차원에서 지원하는 상수 타입의 데이터이기 때문에 컴파일러도 확인 가능하며 기호 테이블에도 들어갑니다.
매크로를 사용하면 해당 값이 등장 횟수만큼 복사되지만 상수 타입의 Value 는 사본은 딱 한개만 생깁니다.
- #define 을 이용해서 상수로 교체하려고 할 때 2가지 주의해야 하는 경우가 있습니다.
1. 상수 포인터를 정의하는 경우
상수 정의는 대게 헤더 파일에 넣는 것이 상례이므로 포인터를 꼭 const 로 선언하고 포인터가 가르키는 대상까지 const 로 선언하는 것이 보통이다.
const char * const Name = "Se Bin Oh";
-> 하지만 char* 보다는 string 객체가 사용하기 좋습니다.
const std::string Name
'Programming > C/C++' 카테고리의 다른 글
| [Effective C++] 컴파일러를 더 가까이 하자. (0) | 2013.08.01 |
|---|---|
| Editplus, Visual Studio Compiler 연동하기 (1) | 2013.02.18 |
| [Linux Kernel] 리눅스 커널 소스입니다. (0) | 2012.10.20 |
| [C - 동적배열] 동적배열 활용 예제 (0) | 2012.01.26 |
| [C - 동적배열] 메모리 재할당을 통한 동적배열 (0) | 2012.01.26 |
| [C - 메모리 관리 함수] (0) | 2012.01.26 |
0 Comments