关于宏扩展的一个疑问
#define htons(s) ((((s) & 0xff00) >> 8) | \
(((s) & 0x00ff) << 8))
#include <stdio.h>
int main(void)
{
int num = 0x1234;
htons(num);
printf("%x\n",num);
getchar();
return 0;
}
#define htons(s) ((((s) & 0xff00) >> 8)
[解决办法]
\
(((s) & 0x00ff) << 8))
#include <stdio.h>
int main(void)
{
int num = 0x1234;
htons(num);
printf("%x\n",num);
printf("%x\n",htons(num));
getchar();
return 0;
}