我有一個簡單的函數Bar
,它使用一組數據集中的一組值,這些值是以數據結構數組的形式傳入的。數據可以來自兩個來源:一個常量初始化的默認值數組或一個動態更新的緩存。如何將常量數組或變量數組傳遞給C中的函數?
調用函數決定哪些數據被使用,應該傳遞給Bar
。 Bar
不需要編輯任何數據,實際上不應該這樣做。我應該如何聲明Bar
的數據參數,以便我可以提供兩組數據?
union Foo
{
long _long;
int _int;
}
static const Foo DEFAULTS[8] = {1,10,100,1000,10000,100000,1000000,10000000};
static Foo Cache[8] = {0};
void Bar(Foo* dataSet, int len);//example function prototype
請注意,這是C,而不是C++,如果這有所作爲;
編輯
哦,還有一件事。當我使用示例原型時,我得到了一個類型限定符不匹配的警告,(因爲我傳遞一個可變引用到一個const數組?)。我需要改變什麼?
+1,只是因爲我很高興仍然有些人不會標記他們的問題'C/C++'並在兩者之間做出區別:D – ereOn 2010-06-15 15:20:48