#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(void **src,void **dst)
{
void *tmp;
tmp = *src;
*src = *dst;
*dst = tmp;
}
void swap(void *src,void *dst,int size)
{
void *tmp = malloc(size);
memcpy(tmp,src,size);
memcpy(src,dst,size);
memcpy(dst,tmp,size);
free(tmp);
}
int main(void)
{
int m = 8,n = 9;
int h = 5,k = 6;
int *ph = &h,*pk = &k;
printf("befor swap[%d %d]\n",m,n);
swap(&m,&n,4);
printf("after swap[%d %d]\n\n",m,n);
printf("befor fun[%d %d]\n",*ph,*pk);
//printf("befor fun[%p %p]\n",ph,pk);
fun((void**)&ph,(void**)&pk);
printf("after fun[%d %d]\n",*ph,*pk);
//printf("befor fun[%p %p]\n",ph,pk);
return 0;
}
通过void指针实现跨类型变量交换函数
最新推荐文章于 2022-01-12 19:56:52 发布