전처리기란 프로그램에서 컴파일 전에 가장 먼저 처리되는 것이라고 보면 된다.
그 중 잘 알지 못하고 있는 것 들에 대해 설명한다.
1. #pragma once
- 포함된 헤더 파일들이 여러개의 소스파일에 동시에 include 되어있을 시 중복되어 충돌할 경우가 발생할 수 있다.
그때 포함된 헤더 파일들이 한번씩만 빌드 되게 설정하는 것이다. 즉 중복을 방지한다.
2. #pragma comment(lib, "*.lib")
- 외부 라이브러리 링크를 코드 내에 명시할 때 사용한다.
Visual Studio와 같은 통합 개발 한경이 아니더라도, Open CV나 여러 라이브러리를 코드 내에서 링크 하여 사용 가능하도록 한다.
3. #define 내부의 #
- #define 전처리기 지시자는 모두 잘 알고 있겠지만 여기서는 #define 내부에 다시 #이 사용 될때를 알아본다.
예를 통하여 알아보자.
기본적으로
#define result(exp) printf(#exp"=%d",exp);
result(3+5);
를 사용하면 어떤 결과값이 출력될까?
출력값은 3+5=8 이란 결과창이 출력된다.
#은 피연산자를 문자열로 치환하는 역활을 하여 결과창에 문자열로 출력하여 준다.
4. #error Message
: 조건에 의한 에러 메세지를 출력하고 전처리 과정에서 컴파일을 중지시킨다.
즉, 컴파일이 불가능한 상황을 개발자에게 알리는 역할을 한다.
예) #ifndef UNICODE //조건부 지시자
#error This program require unicode environment //출력 메시지
#endif
-유니코드로 컴파일이 되고 있지 않으면 컴파일을 중지하고 개발자에게 상황 알리는 문자 출력한다.
'Language > C,C++' 카테고리의 다른 글
텍스트 파일 한줄씩 입력받기. (0) | 2014.05.19 |
---|---|
C에서 예외처리 하기 (0) | 2014.04.08 |
[C언어] 동적할당한 메모리 크기 알기 (0) | 2013.12.28 |
파일 입출력 (0) | 2013.11.08 |
구조체 메모리 패딩 문제 (0) | 2012.09.09 |