티스토리 뷰

 

전처리기

 

매크로

컴파일러가 소스 파일을 컴파일하기 전에 먼저 수행되는 프로그램

  • 프로그래머가 작성한 소스 파일이 컴파일될 수 있도록 준비함
  • 전처리기 문장은 '#'으로 시작
  •  

 

* #define : 매크로를 정의
* #include : 헤더 파일을 포함
* #if, #else, #endif : 조건에 따라 컴파일
* #indef : 매크로가 정의된 경우에 컴파일
* #ifndef : 매크로가 정의되지 않은 경우에 컴파일

매크로 상수

 

형식 : #define 매크로명 값
전처리기 : 소스 파일에서 매크로 상수가 사용된 곳을 모두 찾아서 정의된 문자열로 대치

매크로 함수의 장점

* 매크로 함수를 사용하면 프로그램의 실행 속도가 빨라짐
* 매크로 함수를 사용할 때는 함수 호출이 일어나지 않으므로 함수 호출의 오버헤드를 줄일 수 있음


매크로 함수의 단점

* 매크로 함수를 많이 사용하는 프로그램은 프로그램의 크기가 커짐
* 일반 함수 코드는 한 번만 컴파일해서 만들어 두고, 함수 코드를 필요할 때마다 반복해서 호출함
* 일반 함수는 사용되는 곳마다 매크로 함수를 확장한 코드가 복사됨
* 매크로 함수를 사용하면, 코드가 알아보기 어려워짐
  • 예약 매크로
  • _DATE_ : 최근에 컴파일한 날짜
  • _FILE_ : 소스파일의 이름을 절대경로와 함께함
  • _LINE_ : 소스파일에서 해당 문장이 있는 줄 번호
  • _TIME_ : 최근에 컴파일한 시각
  • _TIMESTAMP_ : 소스파일을 수정한 시각

 

조건부 컴파일

 

#if , #else, #endif
특정 조건이 만족할 때만 코드를 컴파일함
상황에 따라서 특정 코드를 컴파일하게 또는 컴파일하지 않게 만들 수 있음
이식성 있는 코드를 개발할 때 유용함
#if의 조건식에는 매크로를 정수와 비교하는 관계연산자가 주로 사용되고, 산술 연산자, 논리 연산자 등이 사용될 수 있음
if의 조건식에서 매크로를 실수나 문자열과 비교할 수 없음
#if에는 반드시 짝이 되는 #endif가 필요하며, #else를 함께 사용할 수도 있음
#if, #endif에서는 컴파일할 문장이 여러개여도 {}로 묶어줄 필요가 없음
#if안에 다른 #if를 중첩해서 사용할 수 있으며, 각각의 #if마다 #endif가 하나씩 짝을 이루어야함

#ifdef

  • "if defined"의 의미
  • #ifdef는 특정 매크로의 정의 여ㅑ부에 따라 #ifdef와 #endif 사이의 문장을 컴파일할지 결정
  • 형식 : #indef 매크로명 , 문장; , #endif
  • DEBUG 매크로 정의 시에만 함수 정보를 출력하는 경우
  • 출력문에 수행되려면 DEBUG 매크로 정의가 필요함

'JAVA기반 스마트웹 개발2021 > 프로그래밍 언어활용' 카테고리의 다른 글

프로그래밍 언어별 특성  (0) 2021.08.07
애플리케이션 구현  (0) 2021.08.02
배열 포인터 처리  (0) 2021.08.02
스토리지 클래스  (0) 2021.08.02
함수의 인자  (0) 2021.08.01
댓글
© 2018 webstoryboy