问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 11683 人浏览分享

开启左侧

void*无符号指针的作用?

[复制链接]
11683 1
[mw_shl_code=c,true]  /** pointer to the actual data in the buffer */
  void *payload;[/mw_shl_code]




越努力越幸运!加油!

评论 1

宋桓公  版主  发表于 2016-6-12 15:50:36 | 显示全部楼层



void*指针可以指向任何类型,可以称为是泛型的指针。
有时候,只能明确应该传入或返回一个指针,但不确定指针指向的类型时,就应该用void*。如果用具体的指针,虽然也是可以实现所要的功能,但会需要一次显式类型转换,这显然更麻烦,而且使程序不清晰。
举个例子:
stdlib.h中的标准库函数memcpy用来复制指定长度的一片存储器区域,它的原型为
void* memcpy(void*, const void*, size_t);
其中第一个参数表示指向目标的指针,第二个参数表示指向源的指针,最后一个参数表示要复制的字节数(size_t同int)。
假设设计时不用void*而用char*,那么当需要传入非char*的指针类型时需要在指针参数前加上(char*)转换,显然会影响编码效率和源码可读性。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

12

关注

71

粉丝

615

主题
精彩推荐
热门资讯
网友晒图
图文推荐

  • 微信公众平台

  • 扫描访问手机版