C언어에서는 컴파일러에 특정 작업을 지시하는 전처리기(preprocessor)를 제공한다. 보통 전처리기는 반복되는 값이나 작업을 미리 정의할 때 사용하며 컴파일 옵션 설정이나 조건부 컴파일도 가능하다.
#define은 컴파일 직전에 처리되므로 전처리기에 명령한다.
바뀐 코드는 전처리기 과정 때 임시로 생성될 뿐 원본 코드에 영향을 주지 않는다.
다음 코드를 살펴보자.
#include <stdio.h>
#define PI 3.14
float circle_area(float r)
{
return PI*r*r;
}
int main()
{
printf("%f",circle_area(4));
return 0;
}
다음을 해석해보면
#define PI 3.14
는 'PI는 3.14라는 것을 정의해준다' 이다.
이해하기도 쉽고 간단하며 유용한 방법이다. 실제 저런 변수값은 정말 많이 쓰이는 경우가 많은데 하나하나 지정해서 써준다기보다는 메크로로 지정하여 주는게 이해하기도 쉽고 사용하기도 편리하다.
*보통 define 매크로는 대문자로 지정해준다(약속이다).
특히 상수값(잘 변하지 않는값)을 표현할때 많이쓰인다. 물론 상수 뿐만아니라 Array도 지정해줄 수 있다.
'Computer engineering > C' 카테고리의 다른 글
If-else 조건문 (0) | 2021.04.21 |
---|---|
If 조건문 (0) | 2021.04.11 |
4. 대입 및 산술 연산자 (0) | 2021.04.01 |
2. 수의 체계 -실수 (0) | 2021.03.25 |
1. 수의 체계 -보수 (0) | 2021.03.25 |