매크로(Macro)란?

C 언어에서 #define으로 이름을 붙인 문자열 치환. #define BUF_SIZE 64 같은 상수의 이름이나, #define SQUARE(x) ((x) * (x)) 같은 인수를 받는 함수 형식 매크로가 있으며, 컴파일 전에 전처리기가 전개한다. 전개는 문자 치환에 불과하므로, 인수나 전체를 괄호로 감싸지 않으면 연산자 우선순위 때문에 의도와 다른 식이 되며, SQUARE(i++)처럼 부작용이 있는 인수는 여러 번 평가된다.

일본어 명칭: マクロ

매크로(Macro)은(는) C 언어 기초 등 1개 분야의 연습 문제 2개에 나와요.

분야: C 언어 기초

해설 속 매크로(Macro)

매크로(Macro)이(가) 나오는 문제 (2)

  1. #define으로 정의한 매크로 SQUARE를 사용하는 위의 코드를 실행했을 때의 출력으로 올바른 것은?
  2. 위의 코드를 main 함수 안에 써서 실행했을 때의 출력으로 올바른 것은?

관련 용어

전처리기(Preprocessor) 인수(Argument) 미정의 동작(Undefined Behavior) 공용체(union) 구조체(struct) 댕글링 포인터(Dangling Pointer) 동적 메모리 할당(Dynamic Memory Allocation) 메모리 누수(Memory Leak) 버퍼 오버플로(Buffer Overflow) 비트 필드(Bit-field)

용어집으로 돌아가기