[기술 질문] #4_#define, 매크로
C++의 "#define" 키워드에 대해 알아보겠습니다.
Overview
- 개념
- 코드
개념
1. #define
#define PI 3.14
Details
- #define으로 정의된 기호 상수 등은 전처리기가 확장 문자열로 변환합니다.
- #(전처리 지시자) + define(정의하다)
- 주의할 점은 ";"을 붙이면 함께 치환되어 문제가 발생할 수 있습니다.
- 숫자 상수로 대체된 소스코드는 컴파일 에러 발생 시 찾기 어렵습니다. 유지보수에 문제가 발생합니다!
- 결과적으로, #define 보다 const를 활용하는 것이 더 효율적입니다.
2. 매크로 함수
#define Add(a,b) (a + b)
#define PLUS(a,b) a+b
Details
- 일반 함수 호출은 함수가 위치한 메모리 영역에 접근하여, Stack에 메모리 영역을 할당받고 해제하는 작업이 필요합니다.
- 매크로 함수 호출은 Stack 영역에 메모리 할당과 해제가 발생하지 않고, 속도가 빠릅니다.
- 다만, 디버깅이 거의 불가능하기 때문에 주의해서 사용해야합니다.
'언어 > 기술 질문' 카테고리의 다른 글
[기술 질문]#6_동적 할당 (0) | 2023.01.27 |
---|---|
[기술 질문]#5_struct, 구조체 (0) | 2023.01.21 |
[기술 질문]#3_const 키워드 (0) | 2023.01.07 |
[기술 질문] #2_auto 키워드, extern 키워드 (0) | 2023.01.01 |
[기술 질문] #1_변수 종류, 유효 범위, 메모리 구조 (2) | 2023.01.01 |