Проблемы с использованием define в C. Хорошо работает, когда я вызываю OP(9), но когда я вызываю OP(7+2), я получаю 23. Почему?
#include<stdio.h>
#include<stdlib.h>
#define OP(x) x*x;
int main() {
int x,y;
x = 2;
y = OP(7+2);
printf("%d", y);
return 0;
}
Почему печатает 23, а не 81?
7 + 2*7 + 2— это23. Если вы хотите(7+2)*(7+2), добавьте круглые скобки:#define OP(x) ((x)*(x))— все! - person Jonathan Leffler   schedule 09.02.2017OP(7+2)... Вы не можете звонитьOP(7 + 2).OP— это макрос, а не функция. Макросы вызывать нельзя. Их можно только заменить/заменить. Остальное следует. - person AnT   schedule 09.02.2017