without haste but without rest
[C] 매크로 본문
Reference - C언어 코딩도장
1. 매크로
C언어는 컴파일러에서 전처리기(preprocessor)를 제공한다. 보통 전처리기는 반복되는 작업을 미리 정의할 때 사용한다. 매크로는 전처리기에서 #define 으로 정의할 수 있다.
2. 매크로 정의하기
아래 코드에서 #define 지시자는 ARRAY_SIZE 에 정수 10을 할당했다. 이 코드의 장점은 배열의 크기를 수정할 경우, 지시자 코드 한줄을 수정하는 것 만으로도 바꾸고자 하는 배열의 크기를 한번에 처리할 수 있다는 것이다. 이런 문제를 해결하기 위해서 매크로를 사용한다.
#include <stdio.h>
#define ARRAY_SIZE 10
int main() {
char s1[ARRAY_SIZE];
for (int i = 0; i < ARRAY_SIZE; i++) {
s1[i] = 97 + i;
}
for (int i = 0; i < ARRAY_SIZE; i++) {
printf("%c\n", s1[i]);
}
return 0;
}
3. 매크로 해제하기
#undef 로 매크로를 해제할 수 있다.
#include <stdio.h>
#define ARRAY_SIZE 10
int main() {
printf("%d\n", ARRAY_SIZE);
#undef ARRAY_SIZE
#define ARRAY_SIZE 20
printf("%d\n", ARRAY_SIZE);
return 0;
}
4. 함수 모양의 매크로
#include <stdio.h>
#define PRINT_NUM(x) printf("%d\n", x)
int main() {
PRINT_NUM(10);
PRINT_NUM(20);
return 0;
}
'ProgrammingLanguage > C' 카테고리의 다른 글
[C] srand(time(NULL)) 의 의미 (1) | 2020.04.09 |
---|---|
[C] 파일 읽고 쓰기 (0) | 2020.02.29 |
[C] 열거형 (0) | 2020.02.29 |
[C] 공용체 (0) | 2020.02.29 |
[C] 구조체 (0) | 2020.02.27 |
Comments