客观的
我有一个全局 TX 数组和一个必须通过这个数组的 CRC 函数。CRC 函数不应处理第一个字节。为了避免这种情况,我试图通过执行 TX++ 来增加数组。这导致了问题。
问题
请快速查看以下代码:
void Send_To_Manager(void)
{
TX[0] = 0x55;
TX[1] = 0x00;
TX[2] = 0x01;
TX[3] = 0x00;
TX[4] = COMMON_COMMAND;
TX++;
TX[5] = CRC8(TX,4);
TX[6] = CO_RD_VERSION;
TX += 5;
TX[7] = CRC8(TX,1);
TX -= 6;
UART_TX(8);
}
我想屏蔽 TX 数组中第一个字节的 CRC8 函数。通过执行 TX++,我期望 TX[0] 为 0x00。但是我收到错误:
错误:错误的类型参数递增
我也收到 TX += 5 的错误;和 TX -= 6 为:
错误:分配中的类型不兼容
我玩过这个,所以如果函数有一个数组,例如:
void Send_To_Manager(unsigned char data[100])
{
data++;
}
上述工作按预期工作。
问题
- 为什么我可以为基于函数的数组而不是全局数组执行此操作?
- 如果我确实希望对全局数组执行此操作,我该怎么做?
- 您希望如何实现上述目标?
谢谢大家的时间。