NO.3-任意数据类型的交换

2016-12-02  本文已影响0人  尹木林

接着上一节课我们继续讲解,要想实现任意数据类型的数据交换,当然第一印象就是使用C++ 里面的模板特性,但如果使用C语言怎么实现呢, 要想在 C语言中实现这个功能, 必须在C语言中找到一个可以接受任意类型的数据类型,那C语言中有没有呢,本文会给你答案
1.void * 在 C 语言中可以指代任意数据指针。你可以把任意数据指针赋值给一个 void * 变量,也可以把一个 void * 变量赋给特定的指针类型变量。有了void类型指针以后,swap.h文件将变成:

QQ截图20161202180026.png

2.接着就要实现swap.c, 由于没有void类型的数据,所以无法使用上一节中使用的方式来解决,但不管什么的数据,在内存中都是以二进制存在的,故可以使用memcpy这样的api来直接操作内存来实现数据的交换,基于以上的想法,我们给出swap.c的代码,代码如下:

QQ截图20161202180100.png

3.编写测试文件

![Uploading QQ截图20161202180315_077264.png . . .]

4.编译 并输出

QQ截图20161202180315.png u=2325089841,239967740&fm=23&gp=0.jpg
上一篇 下一篇

猜你喜欢

热点阅读