当我声明此功能时:

void vLFSR_ParseInput(unsigned char * pucDataArray,unsigned char unCount){}


并尝试通过此数组

unsigned char g_ucUSCI_A0_RXBufferIndex = 0x00;
unsigned char g_ucaUSCI_A0_RXBuffer[RXBUFFERSIZE];


通过此函数调用

vLFSR_ParseInput(&g_ucaUSCI_A0_RXBuffer,g_ucUSCI_A0_RXBufferIndex);


我的编译器给我这个错误

类型为“ unsigned char(*)[255]”的参数与类型为“ unsigned char *”的参数不兼容

我究竟做错了什么?如果有帮助,我正在使用TI Code Composer Studio进行编程,而我的平台是MSP430x2xx系列。

编辑:固定格式

最佳答案

您应该使用:

vLFSR_ParseInput(g_ucaUSCI_A0_RXBuffer,g_ucUSCI_A0_RXBufferIndex);
                 ^ no unary &


数组可以隐式转换为指向其初始元素的指针,因此在大多数情况下使用g_ucaUSCI_A0_RXBuffer时,它会衰减为指向其初始元素的指针,就好像您已经编写了&g_ucaUSCI_A0_RXBuffer[0]一样。的类型是unsigned char*

当您将unary- &应用于数组时,它将为您提供数组的地址。它具有相同的指针值,但其类型为unsigned char (*)[RXBUFFERSIZE]

09-11 17:54
查看更多