0
我正在學習關於擴展USB控件的代碼,並且我遇到了下面這段代碼。該函數反轉數組的順序。除了一件事外,它非常簡單。爲什麼代碼不會破壞數組?使用源和目標作爲相同的變量應該腐敗它,不是嗎?爲什麼這個數組沒有被弄髒?
/*
* Convert a array of bytes from big endian to little endian and vice versa by inverting it
*/
static
uint8_t *raw_inv(uint8_t *data, int size) {
int ai = 0;
int bi = size - 1;
uint8_t a = 0;
uint8_t b = 0;
while (ai < bi) {
a = data[ai];
b = data[bi];
data[ai] = b;
data[bi] = a;
ai++;
bi--;
}
return data;
}
啊:這是'靜態'聲明,不是嗎?
它在哪裏使用源和目標作爲相同的變量? (該函數的「靜態」聲明不應該影響複製。) –