簡體   English   中英

將空指針轉換為結構體

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM