상세 컨텐츠

본문 제목

전처리와 컴파일

기본 소양/이것이 C 언어다 - 서현우

by leeheemna97 2024. 10. 4. 11:01

본문

728x90
반응형
  1. #include는 지정한 파일을 소스코드에 적절하게 포함시킨다.
  2. #define은 매크로 상수와 매크로 함수를 만들 때 쓴다.
  3. #if, #else, #elif, #ifdef, #ifndef, #endif는 조건부 컴파일을 위해 사용한다.
  4. #pragma, #error, #line 등 컴파일 과정을 돕는 다양한 지시자가 있다.
  5. defined, #, ##은 전처리 지시자와 함께 사용하는 전처리 연산자다.

파일을 포함하는 #include

#include <stdio.h> : include 디렉토리에서 stdio.h를 찾아 그 내용 복사

#include "myhdr.h" : 소스 파일이 있는 디렉토리에서 myhdr.h를 찾아 그 내용 복사

#include "c:\user\myhdr.h" : 다른 디렉터리에 있는 파일을 직접 포함할 때 경로를 포함한 파일명 사용

 

매크로 명을 만드는 #define

#define PI 3.14 : PI는 3.14로 바뀜

#define SUM(x,y) ((x)+(y)) : SUM(10,20)은 ((10) + (20))으로 바뀜

 

#if (VER >= 6)

    max = 1;

#endif               : VER이 6이상이면 max = 1; 컴파일

 

 

#ifdef DEBUG

    printf("%d", a);

#endif                : DEBUG가 정의되어 있으면 printf 문장 컴파일

 

 

 

컴파일 과정 : 소스파일 -> (전처리) -> 전처리된 소스 파일 -> (컴파일) -> 개체 파일 -> (링크) -> 실행 파일

 

전처리 :

1. 전처리기(preprocessor)가 소스크도를 컴파일하기 좋게 다듬는 과정, 소스코드에서는 #으로 시작하는 지시자를 처리

2. 전처리가 끝나면 include한 파일의 내용은 복사되어 소스 파일에 포함됨 (각 모듈이 사용하는 구조체, 함수, 전역 변수 등)

 

 

조건부 컴파일 지시자 :

#if, #else, #elif, #ifdef, #ifndef, #endif 등의 전처리 지시자를 다양한 방법으로 조합하여 사용

 

 

#pragma 지시자 :

#pragma 지시자는 컴파일러의 컴파일 방법을 세부적으로 제어할 때 사용함. pack은 구조체의 패딩 바이트 크기를 결정, warning은 경고 메시지 관리

728x90
반응형

'기본 소양 > 이것이 C 언어다 - 서현우' 카테고리의 다른 글

분할 컴파일  (0) 2024.10.04
구조체 활용, 공용체, 열거형  (0) 2024.10.04
Day 3  (0) 2024.06.17
Day 2  (1) 2024.06.17
DAY 1  (0) 2024.06.11

관련글 더보기

댓글 영역