-1
私のコードにcppcheckを使用すると、関数をconstにすることができたことが示されました。 Cppcheckは正しいと思われますが、私はコード内でmemcpyが奇妙であることを発見しました。コードからMemcpyとconstの正確さ
抜粋:
if ((offset + size) <= _bufferSize)
{
char* _destPtr = (char*)_buffer + offset;
memcpy(_destPtr, data, size);
result = true;
}
私の理解へのmemcpyは、間接的にその機能がconstのではない_bufferして書き込みます。しかし、_bufferを直接使用しても、コンパイラはエラーなしでコードをコンパイルします。
ここでエラーが発生しないのはなぜですか?
ハードcppcheckはあなたが 'const'を置くことを望みます。 [MCVE]を作成してください。 –
これは、 '_buffer'自身ではなく、' _buffer'で指摘されているものを修正しています。それは 'const'関数である可能性があります。 – songyuanyao
あなたはCスタイルのキャストを使用しています。これは、基本的にコンパイラよりも優れていることを意味し、シャットダウンして、あなたがそれを伝えていることを意味します。あなたのツールがあなたのコードをタイプチェックするのを望むなら、Cスタイルのキャストを使わないことを検討してください。 –