开发者社区> 问答> 正文

memcpy函数形参指针类型能不能是char* ?

我们知道memcpy传入的指针类型是void*。
但是由于复制的时候要一个个字节去复制,所以我们需要把void转换成char类型来处理。那么问题来了,我可不可以声明函数的时候就写成char*呢?

展开
收起
a123456678 2016-03-09 15:02:56 3289 0
1 条回答
写回答
取消 提交回答
  • C/C++ 规定可以将任何类型的指针转化为void指针,void指针转换为任何类型的指针,所以我们可以将type 转化为void ,然后将void转化为char进行memcpy。若是入参定义为char,对于编译器不能隐身转化的类型需要在调用的地方进行指针类型强转为char。
    memcpy要做的是bit-wise的拷贝,所以需要逐位的去拷贝。char类型只占一个byte的空间,所以选择char来实现。参数列表使用void*是为了表达该参数可以是指向任意类型的指针。

    2019-07-17 18:56:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多