krx41400.c
来自「answer of the c programming language sec」· C语言 代码 · 共 41 行
C
41 行
/* EXERCISE 4-14 Gregory Pietsch */
/* conditional compilation added by RJH */
#ifdef CATEGORY_0
#define swap(t,x,y) do{t z=x;x=y;y=z}while(0)
#else
#ifdef CATEGORY_1
/*
This works if I can use the assignment operator on type t.
I didn't know if I was allowed to use sizeof or not and still remain
Level 0, otherwise this one is better:
*/
#define swap(t,x,y) \
do { \
(unsigned char *)a=(unsigned char *)(&(x)); \
(unsigned char *)b=(unsigned char *)(&(y)); \
size_t i = sizeof(t); \
while (i--) { \
*a ^= *b; \
*b ^= *a; \
*a ^= *b; \
a++; \
b++; \
} \
} while (0)
#endif
#endif
/* editor's note: sizeof is first mentioned on p91, after this exercise,
* and is not explained properly until p135, so it can be used in
* Category 0 solutions only for exercises 6-1 onward.
*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?