gcc を使用するプロジェクトを IAR コンパイラに移植したいのですが、IAR は void* を仮パラメータとして使用するいくつかの関数について文句を言います。
struct
{
uint16_t ConnectionHandle;
uint8_t Reason;
}DisconnectParams;
関数プロトタイプは
bool Bluetooth_HCI_SendControlPacket(BT_StackConfig_t* const StackState,
const uint16_t OpCode,
const uint8_t Length,
const void* Data);
使用法は次のとおりです。
Bluetooth_HCI_SendControlPacket(StackState, (OGF_LINK_CONTROL | OCF_LINK_CONTROL_DISCONNECT), sizeof(DisconnectParams), &DisconnectParams);
エラー [Pe167]: 型 "struct *" の引数は、型 "void const *" のパラメーターと互換性がありません。
そして別の場所
static inline void SDP_WriteData8(void** BufferPos,const uint8_t Data)
{
*((uint8_t*)*BufferPos) = Data;
*BufferPos += sizeof(uint8_t);
}
エラー [Pe852]: 式は完全なオブジェクト型へのポインターでなければなりません。私が知っているように、void* は任意のポインターを受け入れることができます。コードを変更してこれらのエラーを削除するにはどうすればよいですか? ありがとう!
クリス