Inialization使指针没有强制转换

时间:2017-11-14 11:21:18

标签: c pointers casting

我是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

老实说,我不明白为什么我需要演员才能完成这项工作。没有铸造是不是可以做到?

非常感谢并且对于提出这样一个noob问题表示歉意。

1 个答案:

答案 0 :(得分:0)

不需要施法。问题归结为以下之一:

  1. 在编译器看到函数声明之前,你正在调用select distinct on (id) * from t order by num <> 'AM', date ,而现在松散的C编译器允许隐式函数定义(自C99以来一直不允许)但有些编译器默认启用它!)

  2. 编译错误实际上是指语句R_UART0_getBuffer,具体取决于该数组中的类型。