티스토리 뷰

전처리기
매크로 상수와 매크로 함수의 쓰임새를 알고 프로그램에 구현할 수 있다.
조건부 컴파일 구문을 이해하고 사용할 수 있다.
매크로
1.전처리기
- 프로그래머가 작성한 소스 파일이 컴파일될 수 있으도록 준비함
- 전처리기 문장은'#'으로 시작
2.매크로 상수
소스 파일에서 매크로 상수가 사용된 곳을 모두 찾아서 정의된 문자열로 대치
3.매크로 함수
- 매크로 함수는 함수처럼 인자를 갖는 매크로
- 매크로 상수처럼 매크로 함수가 사용되는 곳에 문자열 대치를 통해서
코드를 확장함 - 매크로 함수는 함수인 것처럼 보이지만 사실은 함수가 아님
- 컴파일 시에 인자의 데이터형 검사를 수행하지 않으며,
인자를 매개변수로 전달하는 함수 호출 과정이 수행되지 않음 - 매크로 함수 사용 시 문자열 대치 과정에서 잘못된 결과가 만들어질 수도 있음
조건부 컴파일
1.#if,#else,#endif
- 특정 조건이 만족할 때만 코드를 컴파일함
- 상황에 따라서 특정 코드를 컴파일하게 또는 컴파일하지 않게 만들 수 있음
- 이식성 있는 코드를 개발할 때 유용함
- #if의 조건식에는 매크로를 정수와 비교하는 관계 연산자가
주로 사용되고, 산술 연산자, 논리 연산자 등이 사용될 수 있음 - #if의 조건식에서 매크로를 실수나 문자열과 비교할 수 없음
- #if에는 반드시 #endif가 필요하며, #else를 함께 사용할 수도 있음
- #if,#endif에서는 컴파일할 문장이 여러 개여도 {}로 묶어줄 필요가 없음
- #if 안에 다른 #if를 중첩해서 사용할 수 있으며,
각각의 #if마다 #endif가 하나씩 짝을 이루어야 함
2.#ifdef
- "if defined"라는 의미
- #ifdef는 특정 매크로의 정의 여부에 따라 #ifdef와 #endef
사이의 문장을 컴파일할지 결정 - DEBUG 매크로 정의 시에만 함수 정보를 출력하는 경우
- 출력문에 수행되려면 DEBUG 매크로 정의가 필요함
매크로
- 전처리기는 컴파일 전 수행되는 프로그램임
- 매크로 상수와 함수는 컴파일 시 대치되는 문장임
- 예약 매크로는 미리 정의된 매크로 상수임
조건부 컴파일
- 조건부 컴파일은 특정 조건이 만족할 때만 코드를 컴파일함
- #ifdef,#ifndef는 매크로 상수의 정의 여부에 따라 컴파일함
'JAVA기반 스마트웹 개발2021 > 프로그래밍 언어활용' 카테고리의 다른 글
프로그래밍 언어별 특성 (0) | 2021.08.04 |
---|---|
애플리케이션 구현 (0) | 2021.08.01 |
배열 포인터 처리 (0) | 2021.08.01 |
스토리지 클래스 (0) | 2021.08.01 |
함수의 인자 (0) | 2021.08.01 |
댓글
© 2018 webstoryboy