1

私が正確に知る必要があるのは、ディレクティブの開始前に改行文字と空白文字使用できることを誰もが知っているので、ディレクティブの開始前にどの文字が許可されているかです( # )これについてC標準を読んで見つけましたこれを説明する次の定義をアウト:

前処理ディレクティブは、次の制約を満たす一連の前処理トークンで構成されます: シーケンスの最初のトークンは、(翻訳フェーズ 4 の開始時に) ソース ファイルの最初の文字 (オプションで白文字の後) である # 前処理トークンです。改行文字を含まないスペース)、または少なくとも 1 つの改行文字を含む空白の後に続く 「C標準 - ここで定義を読んでください」

今私が正確に知る必要があるのは、彼らが何を意味するのかということです

(オプションで、「改行」文字を含まない空白の後) または少なくとも 1 つの「改行」文字を含む空白の後に続く

改行文字を含まない

少なくとも 1 つの改行文字を含む

上記の定義で私が理解していないのは、それが正確に何を意味するのかを知る必要があり、知る必要があることです

改行文字が発生する可能性がある場所は、# トークンの前または # トークンの後です。C 標準では、改行文字が発生する可能性がある場所は規定されていません(「改行文字を含まない」および「少なくとも 1 つの改行を含む」とのみ記載されています)。 上記の状況で空白文字が発生する可能性がある場所 (# トークンの前) が示されているにもかかわらず、(この場合、# トークンの前または # トークンの後に改行文字が発生する可能性がある場所を示していません)

4

1 に答える 1