簡體   English   中英

有沒有辦法比較兩個void指針在C中斷言相同的類型?

[英]Is there ANY way to compare two void pointers to assert the same type in C?

我正在學習C並在C​​中嘗試粗略實現鏈表。長話短說我有一個只包含一個void指針(元素)的結構和另一個指向下一個節點的指針。(代碼要遵循)我的問題是,當通過時頭節點和其他一些節點成新函數,有沒有辦法確保兩個元素屬於同一類型? 兩個節點應該能夠保存任何類型的數據。 我已經嘗試與sizeof()進行比較,但我無法順從void指針。 提前致謝!

struct Node{
    void* element;
    struct Node* next;
}

這是節點的代碼,我只需要一種方法將它們與assert進行比較,以確保鏈接列表具有所有相同的元素類型! 謝謝!

不 - 你通常想要避免像這樣的設計,但是如果你真的無法避免它,你通常需要在節點中放置一個枚舉來告訴你它包含的數據類型。

void *正是一個無類型指針。 換句話說,你的程序知道的是它是指向SOMETHING的指針。 這很有用,但它具體(有意)不是你想要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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