我目前通过spi发送命令如下:
我想创建一个函数来发送传递给它的任何命令。我可以将一个字节数组作为参数传递给函数吗?就像我在下面。
答案 0 :(得分:1)
使用C中的指针完成传递数组
由于数组可能通过从T[]
到T*
的隐式转换衰减指针,我们会传递指向引用数组的函数的指针。
编写像 1
这样的函数void sendCommand(uint8_t* Cmd) {
...
}
并将其称为
sendCommand(SyncCmd);
然而,请注意:sizeof(Cmd)
在sendCommand
中使用时会产生指针的大小,而不是整个数组。因此,您需要显式传递大小。请参阅Linus Torvalds的this,听听关于此事的一些严厉措辞。
1 请注意,uint8_t[]
,uint8_t*
,uint8_t[42]
和朋友在用作参数时都是等效的。也就是说,这些都是等价的:
void foo1(uint8_t*);
void foo2(uint8_t[]);
void foo3(uint8_t[42]);
感谢@Olaf的贡献。