将void指针强制转换为struct

我开始对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指针的主要目的。