반응형
#define 은 크게 두가지 기능이 있습니다. 상수와 함수입니다.
1. 상수 (단순매크로)
어떤 값을 반복적으로 사용해야 하는 경우 변수로 선언하여 사용할 수 있습니다. 예를 들어 원주율이 있습니다. 아래와 같이 변수로 선언하여 이후에는 변수로 사용하면 됩니다.
int PI=3.14;
하지만 이와 같이 선언할 경우 실수로 값을 변경할 수 있는 위험이 있습니다. 이런 경우 두 가지 대안이 있는데요. const 를 이용하여 상수로 만들거나 #define 을 이용하는 방법입니다. 먼저 const를 사용해봅시다.
const int PI=3.14;
위와 같이 코딩할 경우 PI 는 변하지 않습니다. 또는 #define 을 사용하여 아래와 같이 코딩할 수도 있습니다.
#define PI=3.14;
const 상수와 다른점은 #define 은 상수를 메모리 공간에 선언하지 않는다는데 있습니다. "PI가 보이면 3.14로 바꾸는" 기능을 수행합니다. '치환'인 것이죠.
이러한 이유로 매크로라는 이름이 붙은 것입니다. PI 를 3.14로 치환하는 같은 작업을 반복 수행해줍니다.
const 와 #define 이 기능이 비슷한데 뭘 써야하는지 궁금하신 분들은 아래 링크를 참고하세요.
https://kldp.org/node/60529
2. 함수
#define 의 치환을 이용해 함수를 구현한 것입니다. 두 수를 더하는 함수를 구현하면 아래와 같습니다.
#define SUM(a,b) (a+b)
반응형
'C언어 > 매크로 (#define)' 카테고리의 다른 글
[C언어] #if, #ifdef, #ifndef 매크로 (0) | 2022.07.28 |
---|---|
[C언어] #define 매크로에서 괄호가 중요한 이유 (0) | 2022.07.28 |
댓글