У меня вопрос о макросах в программировании на языке C. Что я знаю о макросах, так это то, что они являются предпроцессорными директивами и выполняются до этапа компиляции, и они удаляются. Так что я написал кусок кода, чтобы проверить это, но он все еще работает после стадии компиляции:C препроцессорные макросы
#define SWAP(x,y) {int temp; temp = *x;*x = *y;*y=temp;}
int main()
{
int data1, data2;
while((scanf("%d%d",&data1,&data2)) == 2)
{
SWAP(&data1,&data2);
printf("Data1 =%d, data2 = %d\n",data1,data2);
}
}
Я понятия не имею, почему этот кусок кода все еще работает.
Что вы подразумеваете под * он по-прежнему работает после этапа компиляции *? –