注册 登录
编程论坛 C语言论坛

C语言在函数定义时出现void *

userC 发布于 2020-02-22 12:02, 1288 次点击
void    * RADARDEMO_clusterTracker_create(
                            IN  RADARDEMO_clusterTracker_config * moduleConfig,
                            OUT RADARDEMO_clusterTracker_errorCode * errorCode)

{
    RADARDEMO_clusterTracker_handle * handle;
    uint16_t index;
上面这个为什么用void *以及它的参数是什么情况,我没看懂,求指教
3 回复
#2
吹水佬2020-02-23 17:24
代码不全,看不出为什么用void *
#3
forever742020-02-24 00:34
函数返回一个指针,
在相当长的时期内当我们想用这样一个指针给其它有类型的指针变量赋值而又懒得显式转换类型时,就这么写。
malloc就是void *类型。

如果你的编译器处理
int *p=malloc(20,20);
会出错的话,那么上述的相当长的历史时期结束了。
#4
八画小子2020-02-26 00:14
以下是引用forever74在2020-2-24 00:34:41的发言:

函数返回一个指针,
在相当长的时期内当我们想用这样一个指针给其它有类型的指针变量赋值而又懒得显式转换类型时,就这么写。
malloc就是void *类型。

如果你的编译器处理
int *p=malloc(20,20);
会出错的话,那么上述的相当长的历史时期结束了。




遵循最新或最近一段时间(数年内)的C标准的编译器实现是不用显式转换的,只有C++才需要显式转换。如果编译器处理malloc()的返回值时存在问题,应该是用的是老爷爷版的编译器吧。
PS:本论坛是C语言论坛,不要和C++混为一谈。
1