Попутный массивов осуществляется с помощью указателей в C.
Так как массивы могут распада к указателю через неявное преобразование из T[]
в T*
, мы передаем указатель на функцию со ссылкой на массив.
Написать функцию, как
void sendCommand(uint8_t* Cmd) {
...
}
и назвать его как
sendCommand(SyncCmd);
Однако, берегитесь: sizeof(Cmd)
дает размер указателя, а не весь массив , при использовании в пределах sendCommand
. Поэтому вам нужно явно передать размер. См. this от Линуса Торвальдса, чтобы услышать грубые слова по этому поводу.
Обратите внимание, что uint8_t[]
, uint8_t*
, uint8_t[42]
, и друзья эквивалентны при использовании в качестве параметров. То есть, они эквивалентны:
void foo1(uint8_t*);
void foo2(uint8_t[]);
void foo3(uint8_t[42]);
Благодаря @Olaf за ваш вклад здесь.
Вы не можете передать массив в/из функции в C. Но вы можете передать указатель на свой первый элемент. – Olaf