C++ 如何修复:无法转换';uint8_t(*)[50]{aka unsigned char(*)[50]}';至';uint8_t*{aka unsigned char*}';
我正在为一个特定的问题编程ATMEGA328p。我使用C和C++的库。p> 当我编译代码时,当前的错误是: 错误:无法将参数“2”的“uint8_t()[50]{aka unsigned char()[50]}”转换为“uint8_t*{aka unsigned char*}”,将其转换为“void SendXbee(char,uint8_t*) 我对函数的调用是:C++ 如何修复:无法转换';uint8_t(*)[50]{aka unsigned char(*)[50]}';至';uint8_t*{aka unsigned char*}';,c++,c,C++,C,我正在为一个特定的问题编程ATMEGA328p。我使用C和C++的库。p> 当我编译代码时,当前的错误是: 错误:无法将参数“2”的“uint8_t()[50]{aka unsigned char()[50]}”转换为“uint8_t*{aka unsigned char*}”,将其转换为“void SendXbee(char,uint8_t*) 我对函数的调用是: uint8_t tempBuffer[50] SendXbee(_data, &tempBuffer); void Se
uint8_t tempBuffer[50]
SendXbee(_data, &tempBuffer);
void SendXbee(char Data, uint8_t* Frame){
.
.
.
xBeeAPI_To_Buffer_From_Frame(&Frame, &transmitFrame);
}
在库头文件中:
void SendXbee(char Data, uint8_t *Frame);
在.c存档中,功能是:
uint8_t tempBuffer[50]
SendXbee(_data, &tempBuffer);
void SendXbee(char Data, uint8_t* Frame){
.
.
.
xBeeAPI_To_Buffer_From_Frame(&Frame, &transmitFrame);
}
我做错了什么?从调用的函数调用或框架中删除
&
。。数组自然衰减为指向其第一个元素的指针(如果需要指针)。如果使用普通temnpBuffer
与使用&tempBuffer[0]
相同(它恰好是指向uint8\u t
的指针类型,即uint8\u t*
)。当您使用&tempBuffer
时,会得到一个指向数组本身的指针。在你的例子中,它确实有类型uint8\u t(*)[50]
。对于解释人来说,这有助于我理解其他错误。很高兴得到您的帮助。从调用中删除函数调用或框架中的&
。数组自然会衰减为指向其第一个元素的指针(如果需要指针)。如果使用普通temnpBuffer
与使用&tempBuffer[0]
相同(它恰好是指向uint8\u t
的指针类型,即uint8\u t*
)。当您使用&tempBuffer
时,会得到一个指向数组本身的指针。在你的例子中,它确实有类型uint8\u t(*)[50]
。对于解释人来说,这有助于我理解其他错误。我很高兴你的帮助。