매크로 함수는 일반적인 함수와는 달리 전처리 과정에서 적용되는 함수입니다. 매크로 함수가 아는 일은 쓰여진 내용 그대로를 코드에 복사해넣는 일입니다.
예를 들어 이 코드의 MAX 매크로를 다음과 같이 사용하면,
MAX(a, b) + 3
이는 다음과 같이 변형되어 코드에 들어가게 됩니다.
( (a) > (b) ) ? (a):(b) + 3
이를 연산자 우선순위로 묶어보면 다음과 같이 됩니다.
(a > b) ? a : (b + 3)
그래서 이것은 MAX(a, b)의 계산 결과애 3을 더하는 것이 아니고, a가 b보다 크면 a, 그렇지 않으면 b+3이 결과물이 되는 연산이 되는 것입니다.
매크로 함수는 이 때문에 사용할 때 매우 주의해야 합니다.
pyb56877 5년 전
28번째 줄과 29번째 줄에 관해서 인데요, 어째서인지
매크로 함수와 같은 줄에 input을 더해주면 덧셈이 안되더라구요;
그래서 29번째 줄을 추가해서 덧셈을 하였습니다.
매크로 함수 다음에 산술 연산이 불가능한건가요?