目的
グローバル 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 as:
エラー: 割り当てに互換性のない型
私はこれで遊んだので、代わりに関数に次のような配列がある場合:
void Send_To_Manager(unsigned char data[100])
{
    data++; 
}
上記は意図したとおりに機能します。
質問
- グローバル配列ではなく、関数ベースの配列に対してこれを行うことができるのはなぜですか?
 - グローバル配列に対してこれを行いたい場合、どうすればよいですか?
 - 上記の目的をどのように達成したいですか?
 
ありがとうございました。