我在table.c
(他們每個人大約有1500個成員)中定義了幾個相當大的陣列。我需要將它們傳遞給不同的模塊和/或提供一種如何更新它們的方法。在幾個C模塊之間傳遞大陣列
我的問題是如何使它最有效率,而不是浪費記憶。我的想法是做標準getters/setters
。因此,如果爲get
我將有一個公共職能:
void getTable(tableID, *table)
tableID
會枚舉definying女巫表我想和*table
將指針表。我想只有一個引用被傳遞,所以表格不會在內存中「重複」。
然後在otherModule.c我會打電話僅僅指剛
table *myPointer;
getTable(TableA, myPointerTable).
它是正確的嗎?
訪問器函數是一個選項,但它們不是必需的。您可以直接引用全局對象。 (例如,'int x [10] = {...};'在一個單元中,'extern int x [10];'在引用'x'的不同單元中)由於數組在指向函數時衰減到指針,不必擔心任何意外的副本,因爲只有指針纔會在函數調用中被複制。 – PSkocik
您能否提供一個如何定義這些數組的示例,以及您打算如何使用它們? –
@PSkocik這導致意大利麪條編程和緊密耦合。非常糟糕的主意。 – Lundin