私はExtended USB Controlsについて学ぶためにコードを勉強していますが、私はこのコードを以下に示しました。この関数は、配列の順序を逆にします。 1つのことを除いて、これはかなり単純です。コードが配列を破壊するのはなぜですか?同じ変数としてソースとデスティネーションを使用すると、それが破損するはずです。なぜこの配列は汚れませんか?
/*
* 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;
}
Ah:「静的な」宣言ではありませんか?
? (関数の静的な宣言は、コピーには何の影響も与えません) –