SO にはこの主題に関するリンクがたくさんありますが、何かが欠けていると思います:未指定の動作(UsB)、未定義の動作(UB)、および実装定義の動作(IDB ) の違いを平易な言葉で明確に説明します。 )ユースケースと例の詳細かつ簡単な説明。
注:この WIKI では簡潔にするためにUSBの頭字語を作成しましたが、他の場所で使用されるとは思わないでください。
これは他の投稿と重複しているように見えるかもしれませんが (より近いものはこれです)、誰かがこれを重複としてマークする前に、私が既に見つけたすべての資料の問題点を検討してください (そして、私は作成するつもりです)この投稿のコミュニティ WIKI):
散らばった例が多すぎます。もちろん、例は悪くはありませんが、目前の問題にうまく適合する例を見つけることができない場合があるため、(特に初心者にとって) 混乱を招く可能性があります。
多くの場合、例はほとんど説明のないコードのみです。このようなデリケートな問題については、特に (相対的な) 初心者にとっては、よりトップダウンのアプローチの方が優れている可能性があります。まず、明確で単純な説明と抽象的な (ただし、法律論的ではない) 説明、次に いくつかの簡単な例と、それらが何らかの動作を引き起こす理由の説明を示します。 .
一部の投稿では、C と C++ の例が混在していることがよくあります。C と C++ は、UsB、UB、および IDB と見なされるものと一致しない場合があるため、両方の言語に精通していない人にとっては、例が誤解を招く可能性があります。
USB、UB、および IDB の定義が示されている場合、通常は標準の単純な引用であり、初心者にとっては不明確または難しすぎる場合があります。
規格の引用が部分的な場合もあります。多くの投稿は、当面の問題に役立つ部分のみの標準を引用しています。これは良いことですが、一般性に欠けています。さらに、標準の引用には説明が伴わないことがよくあります (初心者には悪い)。
私自身はこのテーマの専門家ではないので、コミュニティ WIKI を作成して、興味のある人なら誰でも回答に貢献して改善できるようにします。
構造化された初心者向けの WIKIを作成するという私の目的を台無しにしないために、WIKI を編集する際にポスターがいくつかの簡単なガイドラインに従うことを望みます。
ユースケースを分類します。該当する場合は、既存のカテゴリの下にサンプル/コードを配置してみてください。そうでない場合は、新しいカテゴリを作成してください。
まずは平易な説明。最初に簡単な言葉で説明します (もちろん、単純化しすぎないでください - 品質が第一です!) 例またはあなたが言おうとしている点を説明してください。次に、コード サンプルまたは引用を入れます。
基準を参照して引用します。さまざまな標準のスニペットを投稿しないでください。ただし、明確な参照 (例: C99 WG14/N... セクション 1.4.7、パラグラフ ...)を提供し、可能であれば関連するリソースへのリンクを投稿してください。
無料のオンライン リソースを優先します。書籍や自由に利用できないリソースを引用したい場合は問題ありませんが (WIKI の品質を向上させる可能性があります)、無料のリソースへのリンクもいくつか追加してみてください。これは、特に ISO 規格にとって非常に重要です。公式の標準へのリンクを追加することは大歓迎ですが、自由に入手できるドラフトへの同等のリンクも追加してみてください。また、ドラフトへのリンクを公式規格への参照に置き換えず、それらに追加してください。一部の大学の一部のコンピューター サイエンス学部でさえ、ISO 標準のコピーを持っていません。
本当に必要でない限り、コードを投稿しないでください。平易な英語のみを使用した説明がぎこちない、または不明確な場合にのみ、コードを投稿してください。コード サンプルをワンライナーに限定するようにしてください。代わりに、他の SO Q&A へのリンクを投稿してください。
C++ の例を投稿しないでください。これをCの一種の FAQ にしたいと思います(ただし、誰かが C++ のツインスレッドを開始したいのであれば、それは素晴らしいことです)。C++ との関連する違いは歓迎されますが、補足としてのみです。つまり、C のケースを徹底的に説明した後、C プログラマーが C++ に切り替えるときに役立つのであれば、C++ に関するいくつかのステートメントを追加できます。通常、 「(この場合、C++ の動作は異なります)」のような簡単なメモと関連するリンクで十分です。
私は SO にかなり慣れていないので、この方法で Q&A を開始することで規則に違反していないことを願っています。この場合は申し訳ありません。モッズは私にそれについて知らせてくれることを歓迎します。