(3)私は次のプログラムの出力を理解していません。2つの異なる論理行を示しています。違いがありますか?1つの行として常に評価される#define文で定義したものを引き起こします。2番目のケースは本当に2行のコードです。_を評価する必要があります。_を評価するための2番目の前処理パスがないためです。_は、Fooが展開されている行、つまり7行目に基づいて評価されます。_を使用することは、翻訳ユニットのソースコードに表示される正確な行番号に基づいて、前処理段階で実際に評価されます。:現在のソース行の行番号は、ソースファイルを現在のトークンに処理中に、翻訳フェーズ1(2.2)で読み込まれた、または改行文字の数より1多いです。\終わる行は翻訳フェーズ2で連結されます。他の唯一の論理的な実装は、FOOの呼び出しのために3と4を出力することですが、あまり役に立ちません。__LINE__は他のマクロと全く同じです。これはちょうどすべての行頭のコンパイラによって自動的に更新されます。コードはこのように解釈されます。'\n';}これは有効なコードではありませんが、どのように動作するかを示しています。通常のマクロ展開ルールを適用すると、得られた出力が得られます。11は、標準化されたメモリモデルを導入しました。"1"と解釈しますか?なぜclang++はfooオブジェクトを1つだけ破壊するのですか?日本語Top。