반응형
#define
• 메모리에 올라가지 않는 장점
• 타입 지정 필요 없다
• 전처리기로 수행되기 때문에 디버깅 하기 쉽지 않다.
• 연산 우선순위에 따라 다르게 계산될 수 있기에 괄호 표시 주의
const
• 타입 지정 필요하다
• 컴파일러가 처리하기 때문에 디버깅 용이
• 일반 변수와 같이 메모리 할당됨
• 변수에 대입한 값이 이미 계산이 완료된 상태로 들어있는 상태
#define YEAR 2019
#define MONTH "Apr"
#define DAY 2
const int kYear = 2019;
const char[5] kMonth = "Apr";
const int kDay = 2;
연산시 주의사항
#include <iostream>
using namespace std;
#define TEST_VARIABLE_DEFINE 2+5
const int TEST_VARIABLE_CONST = 2+5;
int main(void)
{
cout << TEST_VARIABLE_DEFINE * 6 << endl; // 32
cout << TEST_VARIABLE_CONST * 6 << endl; // 35
return 0;
}
#define ▶ 2 + 5 * 6 = 32
const ▶ (2 + 5) * 6= 42
Q) #define, const 어떤 것을 선택해야할까?
const는 변수는 변수형을 지정해주기에
개발자가 오류를 더 쉽게 감지할 수 있는 있다.
메모리를 극도로 조절해야 하는 환경이라면 define 선호하기도 한다.
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C/C++] 패딩 비트 (Padding Bit) (2) | 2024.11.09 |
---|---|
[C/C++] struct 차이 비교 (1) | 2024.11.08 |
[C++] auto 키워드 (4) | 2024.10.28 |
[C/C++] union 공용체 (2) | 2024.10.27 |
[C/C++] Header Guard 활용 (2) | 2024.07.24 |
댓글