今天写到一个题目:
#include <stdio.h>
#define SWAP(T,A,B){\
T temp;\
temp = A;\
A = B;\
B = temp;\
}
int main()
{
int arr[] = {3,4,5,6,7,8,9};
int j;
int i = 2;
SWAP(int, i, arr[i]);
for(j=0; j<7; j++)
printf("%d ", arr[j]);
getchar();
return 0;
}
对于宏定义后面加斜杠的说法主要解释是仅仅充当一个回车键的效果,如果不这么写,就会出现一些奇葩的错误,就像下面2种情况一样,深有体会。
1.不加斜杠的错误
2.括号不紧挨着define的错误
这种情况就算加了斜杠也没用,照常出错,还解决不了问题。