接着上一节课我们继续讲解,要想实现任意数据类型的数据交换,当然第一印象就是使用C++ 里面的模板特性,但如果使用C语言怎么实现呢, 要想在 C语言中实现这个功能, 必须在C语言中找到一个可以接受任意类型的数据类型,那C语言中有没有呢,本文会给你答案
1.void * 在 C 语言中可以指代任意数据指针。你可以把任意数据指针赋值给一个 void * 变量,也可以把一个 void * 变量赋给特定的指针类型变量。有了void类型指针以后,swap.h文件将变成:
2.接着就要实现swap.c, 由于没有void类型的数据,所以无法使用上一节中使用的方式来解决,但不管什么的数据,在内存中都是以二进制存在的,故可以使用memcpy这样的api来直接操作内存来实现数据的交换,基于以上的想法,我们给出swap.c的代码,代码如下:
3.编写测试文件
4.编译 并输出