Contents
1. 전처리기(Preprocessor)란?
2. #define 전처리기
3. #define 예제 코드
4. #연산자
1. 전처리기(Preprocessor)란?
프로그램 코드를 컴파일 하기 전에 특정한 작업을 수행하는 소프트웨어 도구이다.
컴파일 단계 이전에 특정한 코드의 변경, 수정, 조건적 컴파일, 헤더 파일의 포함 등을 처리한다.
C언어의 전처리기 명령어는 '#' 기호로 시작되며, #include, #define, #ifdef 등이 있다. 이들을 '전처리기 지시자' 라고 부른다.
2. #define 전처리기
#define은 C언어에서 매크로를 정의해 일반적으로 코드 내에서 많이 사용되는 상수나 함수를 정의할 때 사용한다.
이는 값이 고정되어 불필요하게 수정되는 것을 방지하고, 자주 사용된 값을 바꾸어야 할 때 유용하게 사용할 수 있다.
코드의 가독성이 향상되어 보기에도 편리하다 !!

< #define의 기본 형식 >
#define 문자열 정의할 값
자료형과 세미콜론(;)은 붙이지 않는다. 정의할 값을 문자열로 치환하는 느낌!
define을 사용하는 순간 문자열은 해당 값을 나타내는 것이 된다.
3. #define 예제 코드
- #define을 이용해 원주율을 정의하고 원의 넓이 구하기
#include <stdio.h>
#define PI 3.14 // PI = 3.14
int main()
{
float r = 3.0; // 반지름
float 원의넓이 = PI * r * r;
printf("원의 넓이 : %f", 원의넓이);
return 0;
}
- 실행 결과
원의 넓이 : 28.260000
이와 같이 #define을 이용하여 상수를 정의하는 것을 '매크로 상수'라고 한다.
- #define을 이용해 덧셈 함수 정의하기
#include <stdio.h>
#define ADD(a, b) a+b
int main()
{
int x = 5, y = 3;
int result = ADD(x, y);
printf("덧셈 결과 : %d", result);
return 0;
}
ADD(a, b)를 입력하면 이를 a+b로 인식하겠다는 뜻이다.
- 실행 결과
덧셈 결과 : 8
이와 같이 #define을 이용하여 함수를 정의하는 것을 '매크로 함수'라고 한다.
일반 함수의 경우 반환 값을 가지지만, 매크로 함수는 단순히 치환만 한다는 점에서 차이가 있다.
- #define을 이용해 문자열 출력
#include <stdio.h>
#define SayHello "안녕하세요!"
int main()
{
printf(SayHello);
return 0;
}
SayHello라는 문자열 자체가 안녕하세요!라는 문자열이 된다!
- 실행 결과
안녕하세요!
4. #연산자
#define을 사용할 때 매개변수 앞에 #를 붙일 경우 해당 매개변수를 문자열로 만들어주는 기능이 있다.
#include <stdio.h>
#define String(x) #x // #연산자를 활용해 입력받은 x를 문자열로 처리
int main()
{
printf("문자열로 출력하기 : %s", String(5)); // 상수 5를 문자열로 출력하기 위해 %s 입력
return 0;
}
- 실행 결과
문자열로 출력하기 : 5
'Programming > C' 카테고리의 다른 글
[C언어] sprintf 함수와 snprintf 쉽게 쓰기 (0) | 2025.01.11 |
---|---|
[C언어] typedef 명령어 쉽게 사용하기 (0) | 2023.11.01 |