ISO C標準(6.3.16.1)によれば、「両方のオペランドが両方とも互換性のある型のポインターであり、左に指されている型は、右に指されている型のすべての修飾子を持っています。 私は静的解析ツールでその警告を受けましたが、実際の問題があるかどうかはわかりません。あなたは以下のコードで見ることができるように、そのポインタはそれのプロトタイプ危険なキャストキャストの結果、const資格が失われる
int main()
{
static volatile const signed int batu[5] = {1,2,3,4,5};
unsigned int x = 5;
func(x, (signed int *) batu);
}
signed int func(unsigned int p1, volatile const signed int *p2)
{
return 0;
}
セクションに「6.3.16」はなく、標準では「.1」はありません。これまでリファレンスとして使用してきたものはISO9899ではありません。 – Olaf
1)絶対に必要なものではない、2)キャストの**すべての**意味を理解していない、または3)完全に受け入れていない場合、キャストを使用しないでください。だから、**なぜ**あなたはそのキャストを使用していますか? – Olaf
セクション '6.5.16.1/1'(C99) – atturri