怎么实现像memcpy那样,即使参数类型不为void*编译器也不会报错
如何实现像memcpy那样,即使参数类型不为void*,编译器也不会报错?如题,自定义的函数,其中一个参数类为void
如何实现像memcpy那样,即使参数类型不为void*,编译器也不会报错?
如题,自定义的函数,其中一个参数类为void型指针,但调用时,使用其它类型变量作为参数,编译器会报错,加上取址符&可以解决;
但是,memcpy的第一个和第二个参数也是void型指针,为什么可以用任何类型变量作为参数?而且不用加取址符&。
[解决办法]
C与C++的区别吧
纯C的话,memcpy你传进去一个int型,也不报错,有些编译器会给警告
C++,void*指针只能传指针,不能传其他类型
[解决办法]
[解决办法]在C语言中任何类型的指针都可以转换为void*类型,且将它转换成原来的类型时不会丢失信息,所以调用memcpy函数时可以将参数类型强制转换成void*类型。这种转换通常不会影响到数据的实际表达,但要确保编译器不会报错。可见会报错的话,那就是你编译器的问题了。
[解决办法]自定义的函数,其中一个参数类为void型指针,但调用时,使用其它类型变量作为参数,编译器会报错,加上取址符&可以解决? fuck 明明是你传参数类型传错了。怪不得报错。
[解决办法]extern "C" {
...
}