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