C++에서 전처리기 지시문(#define, #include)의 역할은?
_____A1: ` define`은 전처리기 지시문 중 하나로, 특정 이름을 상수나 코드 조각으로 미리 정의하여 소스 코드 내에서 반복적으로 사용할 수 있게 해줍니다. 주로 상수 값, 매크로 함수 등을 정의하는 데 사용됩니다. 컴파일 전에 전처리기가 해당 이름을 정의된 값이나 코드로 치환합니다.
---
Q2: define을 사용하는 예시는 무엇인가요?
A2:
```cpp
define PI 3.14159
define MAX(a,b) ((a) > (b) ? (a) : (b))
```
위처럼 상수 `PI`를 정의하거나 매크로 함수 `MAX`를 정의해 조건부 최대값을 간단하게 표현할 수 있습니다.
---
Q3: define이 가지는 장점은 무엇인가요?
A3:
- 코드 재사용 및 가독성 향상
- 컴파일 타임 상수로 처리되어 성능에 영향이 적음
- 조건부 컴파일이나 매크로 함수 정의로 유연한 코드 작성 가능
---
Q4: define의 단점이나 주의점은 무엇인가요?
A4:
- 타입 체크가 되지 않아 의도치 않은 결과 발생 가능
- 매크로 함수는 괄호를 잘 써야 우선순위 오류 방지
- 디버깅 시 매크로 치환 후 코드가 보이므로 가독성 저하 가능
- 복잡한 로직에는 함수나 `const` 변수 사용권장
---
Q5: include란 무엇인가요?
---
Q6: include에 사용할 수 있는 두 가지 문법 방식은 무엇인가요?
A6:
- ` include
- ` include "filename"`: 현재 디렉터리 또는 사용자 정의 경로에서 헤더 파일을 찾을 때 사용합니다.
---
Q7: include를 사용하는 이유는 무엇인가요?
A7:
- 코드 중복 방지 및 모듈화 지원
- 공통 선언이나 정의를 여러 파일에서 공유 가능
- 유지보수 용이성 증가
---
Q8: include가 컴파일 과정에서 어떻게 처리되나요?
A8: 컴파일 전 전처리기가 소스 코드 내 ` include` 지시문을 만나면 지정된 파일 내용을 그대로 복사하여 현재 파일에 삽입합니다. 이렇게 합쳐진 단일 소스 코드가 컴파일됩니다.
---
Q9: define과 include는 어떻게 다르나요?
A9:
- ` define`은 이름을 특정 값이나 코드로 치환하는 매크로 정의 기능을 담당
- ` include`는 외부 파일을 현재 소스 코드에 복사해 넣는 기능을 담당
서로 다른 목적의 전처리기 지시문입니다.
---
Q10: 전처리기 지시문은 컴파일러 단계 어디에서 처리되나요?
A10: 전처리기 지시문( define, include 등)은 컴파일 이전에 실행되는 전처리 단계에서 처리됩니다. 전처리 결과가 컴파일러의 문법 분석 단계에 입력됩니다.
작성자:
박하민 [비회원]
| 작성일자: 1년 전
2024-09-20 17:11:30
조회수: 199 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 199 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.