[英]Casting a void pointer to a struct
我開始對 C 感到很舒服,然后我遇到了類型轉換。 如果我在 *.h 文件中定義了以下內容
struct data {
int value;
char *label;
};
這在另一個 *.h 文件中
# define TYPE void*
如何將 void 指針轉換為結構體,以便我可以使用傳遞給函數的變量“TYPE val”? 例如,如果我想利用 TYPE val 指向的值,我如何轉換它以便我可以將該值傳遞給另一個函數?
(struct data*)pointer
將指向 void 的指針轉換為指向struct data
的指針。
可以通過以下方式將指向結構的空指針類型轉換為
void *vptr;
typedef struct data
{
/* members */
} tdata;
為此,我們可以將類型轉換為 struct 假設您想將此 vptr 作為結構變量發送給某個函數
然后
void function (tdata *);
main ()
{
/* here is your function which needs structure pointer
type casting void pointer to struct */
function((tdata *) vptr);
}
注意:我們可以將 void 指針類型轉換為任何類型,這就是 void 指針的主要目的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.