我是 C 编程的新手,我试图阅读类似的问题,但我无法解决我的特定问题。
我有一个小函数,它返回一个指向 g_Uart0RxBuf 数组的指针:
uint8_t* R_UART0_getBuffer()
{
uint8_t* pointer_to_buffer;
pointer_to_buffer = &g_Uart0RxBuf[0];
return pointer_to_buffer;
}
在调用函数中,我这样做:
uint8_t* pointer; //Define pointer variable
pointer = R_UART0_getBuffer(); //Should return a pointer to an uint8_t
老实说,我不明白为什么我需要演员来完成这项工作。没有铸造就不能做到吗?
非常感谢,我很抱歉提出这样一个菜鸟问题。
不需要演员表。问题归结为以下之一:
您在编译器看到函数声明R_UART0_getBuffer
之前调用,而您现在松懈的 C 编译器允许隐式函数定义(自 C99 以来已被禁止,但某些编译器默认启用它!)
编译错误实际上是指pointer_to_buffer = &g_Uart0RxBuf[0];
根据该数组中的类型而定的语句。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句