H**********5 发帖数: 2012 | 1 后天一个on site,
刷了3天的C语言,
遇到这个题,感觉很有趣,
写一个统一适用的swap:# define swap(x,y) /
{ void *_tmp=malloc(sizeof(x)); /
void *_x=&x; void *_y=&y; /
memcpy(tmp,_x,sizeof(x));/
memcpy(_x,_y,sizeof(y));/
memcpy(_y,_tmp,sizeof(x));}
这个表面上看上合理,
但一遇到含有指针元素的结构体,感觉就挂了吧,
请问有没有办法实现这种任何任意种类元素的swap,用C实现。 | s***k 发帖数: 50 | 2 x = x^y
y = x^y
x = x^y
若是x, y为结构体,则需要重载operator ^ | l*******b 发帖数: 2586 | 3 大struct 不是都应该用指针么。能swap 指针就行了吧
【在 H**********5 的大作中提到】 : 后天一个on site, : 刷了3天的C语言, : 遇到这个题,感觉很有趣, : 写一个统一适用的swap:# define swap(x,y) / : { void *_tmp=malloc(sizeof(x)); / : void *_x=&x; void *_y=&y; / : memcpy(tmp,_x,sizeof(x));/ : memcpy(_x,_y,sizeof(y));/ : memcpy(_y,_tmp,sizeof(x));} : 这个表面上看上合理,
| r****t 发帖数: 10904 | 4 看不懂为什么会挂, 不过你漏了.
【在 H**********5 的大作中提到】 : 后天一个on site, : 刷了3天的C语言, : 遇到这个题,感觉很有趣, : 写一个统一适用的swap:# define swap(x,y) / : { void *_tmp=malloc(sizeof(x)); / : void *_x=&x; void *_y=&y; / : memcpy(tmp,_x,sizeof(x));/ : memcpy(_x,_y,sizeof(y));/ : memcpy(_y,_tmp,sizeof(x));} : 这个表面上看上合理,
|
|