Я написал следующий код для проверки функций MACRO:
#define err_exit(a, b) {fprintf(stdout,"%s\n",(a)); return (b); }
int func1(int a){
if(a<50)
err_exit("less than 50", a);
if(a>50)
err_exit("greater than 50", a);
return 0;
}
int main() {
fprintf(stdout, "\npop\n%d\n",func1(30));
return 0;
}
И вывод:
less than 50
pop
30
Но я ожидал этого вывода:
pop
less than 50
30
Почему текст появляется перед pop
?после этого вызывается функция func1()
!
Как макрос заменяет инструкции в основном коде?