gpt4 book ai didi

c - C 中的安全类型转换

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:08 25 4
gpt4 key购买 nike

大家好,我有这段代码:

void writer(void* param){
if(NULL == param){
return;
}
param = (param_t*)param;
...
}

它是否是安全代码,param 来自 param_t* 类型,但是当我在函数中使用它时,每次转换时我都感到恶心,有人有另一个优雅的解决方案吗?提前致谢

最佳答案

这是一个奇怪的空操作。

当你定义函数时,你说参数是 void* 类型。
然后,通过强制转换,您可以将其显式转换为 param_t*
编译器通过赋值隐式地将 param_t* 转换为 void*

你需要另一个变量

void writer(void *param) {
param_t *internal_param;

if (NULL == param) return;
internal_param = param;
/* ... */
}

关于c - C 中的安全类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6095054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com