我有兩個定義的結構,它們都有一個共同的字段。 typedef struct entry entry;共享相同變量的結構的函數指針
typedef struct example {
entry* list_e;
int nb_elements;
int nb_mllc;
} example;
typedef struct mystruct {
entry* list_e;
int nb_elements;
int nb_mllc;
} mystruct;
是可能的是,我寫一個函數使得或者MYSTRUCT或例如可以是一個變量的類型?在該功能我正在填充列表「項」,所以我知道我可以通過編寫方法
void add_entry(entry** list_e, int* nb, int* nb_mllc){
//fill the entries
if (*nb == *nb_mllc) {
//realloc list_e
}
}
做,但然而,這看起來像一個骯髒的解決方案給我的話,我將不得不調用函數像
example* example; //malloc and null pointer checking left out
add_entry(&example->list_e, &example->nb_elements, &example->nb_mllc);
然後也mystruct,但我寧願沒有拆分結構的變量作爲函數參數。是否有可能使以某種方式例如和MYSTRUCT相同類型的,所以我可以然後使整個結構作爲參數
您的類型「示例」和「mystruct」似乎除了它們的標記以外都是相同的。爲什麼不選擇一個並在任何地方使用? –
你說結構只共享一個字段,但它們似乎具有相同的確切結構。這是一個錯字或什麼? – yLaguardia
你有一個異構的鏈表,這是真的嗎?您希望如何恢復鏈接的數據而不失去其類型?你將需要實現某種類型的自省,對吧? –