我开始对C感到舒服,然后遇到了铸造。 如果我在* .h文件中定义了以下内容
struct data { int value; char *label; };
这是另一个* .h文件
# define TYPE void*
如何将void指针强制转换为struct,以便我可以使用传递给函数的变量“TYPE val”? 例如,如果我想利用TYPE val指向的值,我该如何转换它以便我可以将该值传递给另一个函数?
(struct data*)pointer
将指向void的指针转换为指向struct data
的指针。
可以在下面完成对结构的类型转换指针
void *vptr; typedef struct data { /* members */ }tdata;
为此,我们可以对结构进行类型转换,假设您想将此vptr作为结构变量发送到某个函数
然后
void function (tdata *); main () { /* here is your function which needs structure pointer type casting void pointer to struct */ function((tdata *) vptr); }
注意:我们可以将void指针强制转换为任何类型,这是void指针的主要目的。
需要了解更多c/c++开发分享将void指针强制转换为struct,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!
以上就是c/c++开发分享将void指针强制转换为struct相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/979831.html