だから、私はこのコードを持っています。Cで定数でなければならない変数を見つけるにはどうすればよいですか?構造のイーサネットパケットの先頭へのポインタを作成します</p> <pre><code>uint8_t* pbytes = pkt->iov[0].iov_base; </code></pre> <p>:
私は友人にコードを見て欲しいと言っています。彼は「あなたはそれを修正していませんし、そうした場合は本当に混乱します。
そして、これは非常に、良いアイデアのように思える:でも
const uint8_t* pbytes = pkt->iov[0].iov_base;
か:
const uint8_t * const pbytes = pkt->iov[0].iov_base;
そして今、私は考えていますが、私が行っている可能性が他の場所の負荷がある賭けますコンパイラが私よりもそれらを見つけ出す方が良いと確信しています。
どのように私はそれを質問する任意のアイデアですか? (gccが望ましいですが、UNIX上で動作する限り、別のコンパイラやlintingツールを使用しても問題はありません)。
'のconst uint8_t * pbytes'は一定ではありません。 Cは_enum-constants_(常に 'int')以外の記号定数を持っていません!それはC++ではありません。 – Olaf
これを簡単に自動化する方法はありません。 'const'をすべて宣言してから、エラーになる変数を削除することができます。 – Barmar
2番目の 'const'は' * 'の後に続く必要があります。 'const uint8_t * const pbytes = ...; '' pbytes'をconst 'uint8_t'へのconstポインタとして定義します。 –