我有兩個具有相同結構的物理實體。什麼是處理這種情況的理想方式。在兩個結構體具有固有相同結構的情況下消除一個結構體定義
例如:
struct graphlet_vector {
int a;
int* data;
}
struct group_vector {
int a;
int *data;
}
組矢量被定義爲在一定範圍內,因此該結構結合到保留在所述時間段相同的聚合基元向量。因此,對同一事物有兩種結構似乎是多餘的。
我不能用這樣的東西: typedef struct graphlet_vec struct group_vec
(雖然以下工作正常:typedef struct graphlet_vec group_vec
)。
有什麼建議嗎?
是否必須保持struct關鍵字?我沒有看到任何問題,否則 –
@EsaLakaniemi只是一個隨處可見的約定。有興趣知道是否有其他方法來執行它。 –
如果這兩件事在概念上或語義上不同,請將它們分開,並且不要擔心「冗餘」。如果您需要表示兩種複合類型,則將它們表示爲兩種不同的類型。他們擁有相同內部表現的事實與這個決定並不緊密。你的問題表明你想繼續*使用*兩個不同的名字,所以省去在標題中輸入兩個小'struct'定義的麻煩是微不足道的。無論如何,編譯後的'struct'定義將會消失,所以你不會保存任何實際的資源。 –