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

接着上一节课我们继续讲解,要想实现任意数据类型的数据交换,当然第一印象就是使用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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 8,746评论 0 6
  • 1.写一个NSString类的实现 +(id)initWithCString:(c*****t char *)nu...
    韩七夏阅读 9,193评论 2 37
  • 在一天结束的时候,发现好多安排好的计划都没有完成,怎么办? 生活杂事不愿处理 我想到日常生活中很多重复的事情,比如...
    郭志远阅读 1,180评论 0 2
  • 你想学会游泳,你想学会古筝,你想文章写的越来越好,你想工作有存款,你想去旅行,你想赚很多很多的钱孝敬父母,你想拥有...
    叶冷阅读 2,649评论 0 0
  • 1 基础介绍 1.1 存储介质 现代计算机物理存储机制金字塔如下图所示: 各级存储方式速度和容量: 1.2 文件描...
    疯狂小王子阅读 3,940评论 0 2

友情链接更多精彩内容