将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指针的主要目的。