C の定数参照型 : 'const' 修飾子の配置
C では、 'const' 修飾子:
const Fred &arg; Fred const &arg;
意味上の違い
意味的には、これら 2 つの宣言は同等であり、言語はこれらを同じ型と見なします。 const T& で引数を渡すか、T const& で渡すかに機能的な違いはありません。
スタイルに関する考慮事項
ただし、スタイルに関しては、プログラマによって好みが異なります。 .
左から右への解析
一部のプログラマーは、'const' 修飾子を型 (T const&) の後に配置することを主張し、それが右に続くと主張しています。 C の左への解析ルール。これにより、宣言を読み取るときに、'const' 修飾子が参照自体ではなく型に確実に適用されます。
右から左への解析
しかし、const T& 構文を好む人もおり、右から左へも同様に読みやすいと主張しています。これは「T 定数への参照」として解釈できます。さらに、参照の前に 'const' 修飾子を配置すると、不正な 'T* const' などのポインタ定数の誤った宣言が防止されます。
一般的な慣行
実際には、両方のスタイルが広く使用されています。 Stroustrup の「C プログラミング言語」と C 標準で好まれているスタイルは const T& です。ただし、K&R の「The C Programming Language」および C 標準で使用されるスタイルは T const* です。最終的に、スタイルの選択は個人の好みの問題であり、特定の組織のコーディング規約の影響を受ける可能性もあります。
以上がC の Const 参照: `const T&` または `T const&` – 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。