C/C++ コンパイラは、ソース コード内のエスケープ文字 ["\"] をどのように操作しますか? その文字を処理するためにコンパイラの文法はどのように書かれていますか? その文字に遭遇した後、コンパイラは何をしますか?
mahesh
質問する
1412 次
4 に答える
14
6
このテーマに関する興味深いメモは、信頼について [PDF リンク]です。
この論文では、コンパイラがこの問題を正確に処理できる1つの方法について説明し、cで書かれたcコンパイラがコードをASCII値に明示的に変換しない方法を示しています。また、新しいエスケープ コードをコンパイラにブートストラップして、新しいコードの ASCII 値も暗黙的に理解できるようにする方法。
于 2008-11-27T20:28:53.677 に答える
2
通常、次の文字をエスケープします。
- 文字列リテラルまたは文字リテラルでは、次の文字をエスケープすることを意味します。
\a
「アラート」(端末の点滅、ビープ音など)を\n
意味し、「改行」を\xNUM
意味します。たとえば、16進数を意味します。 - 文字列内であるかどうかに関係なく(さらには行全体のコメント内でも)、改行の前に最後に表示される文字として表示される場合、行継続として機能します。次の改行文字は無視され、次の行は次のようになります。現在の行とマージされました。
于 2008-11-27T11:06:20.533 に答える
1
次の文字(のような\n
)を持つエスケープ文字は、Cコンパイラの単一文字です-スキャナーはそれを文字トークンとしてパーサーに提示するため、エスケープ文字のパーサーに特別な構文規則は必要ありません。
于 2008-11-27T10:50:05.433 に答える