多維陣列該如何當作引數傳入函數呢?
2009/09/17 14:15
瀏覽3,653
迴響0
推薦1
引用0
有時候我們要把多維陣列當作引數傳入函數該怎麼做?這類語法的問題其實很恐怖,因為根本不知道該怎麼查。
這類的語法如果懂得,將會大幅提升程式的結構性與穩定度,也可以使用Excel VBA來動態產生資料內容,如果懂得利用compiler來強制指定該筆資料放在某個特定位址,甚至可以使用各種儲存媒體,如sd card或動態載入來更新資料,希望下列範例可以有些幫助:
typedef struct {
float min;
float max;
} RANGE;
RANGE RngA [10][5]= {xxxxxx};
RANGE RngB [20][5]= {oooooo};
void FuncA( RANGE (*Rng)[5] )
{
int idx1, idx2;
Ooxxx
Rng[idx1][idx2]=xo#&%$...
}
void main(void)
{
FuncA(RngA);
}
上述寫法就可以了,那如果資料是固定值,存在flash就好了,想改成const,該怎麼寫呢?
RANGE const RngA [10][5]= {xxxxxx};
void FuncB( RANGE (const *Rng)[5] )
{
Int idx1, idx2;
Ooxxx
Rng[idx1][idx2]=xo#&%$...
}
const與多維陣列的意義請參考我之前寫的一些文章……

