因为函数的定义决定了你只能专指针, 如果你想输入常数, 那么你就需要想办法得到常数的地址. 因为常数就是一个立即数, 是没有存储空间的. 但函数又需要空间的地址 所以, 只能使用中间变量了.
只要你保证字节数不变即可. 内存中不管哪种数据类型基本单位都是字节, 只是占用字节不同而以. int intBuf[100] ; short shBuf[100] char chBuf[100]; transmit( (const uint8_t*)intBuf); 发送 100*4字节 (假设int为4字节, int8_t为1字节) transmit( (const uint8_t*)shBuf); 发送 100*2字节 (假设short为2字节) transmit( (const uint8_t*)chBuf); 发送100字节.
严重怀疑不带长度的transmit函数如何工作。
我觉得可以直接转吧,有什么问题吗?都是无符号8位整数 比如 unsigned char c = 0xAC; transmit((uint8_t *)&c);
我需要传输一些16进制的数,比如0x11, 0xAC之类的。但是可用的传输函数接口如下: transmit(const uint8_t *tx)
70,023
社区成员
243,263
社区内容
加载中
试试用AI创作助手写篇文章吧