別スレッド「エディタのバージョン違いを知らせるメッセージの表示は?」をたてたものです。
その方法について、色々ご教示いただきましたが、今回の表題について、どうもスッキリとしません。
ググっていると、
「C# ではプリプロセス命令の解釈をコンパイルと同時に行っている」
『 C# によるプログラミング入門 [その他]プリプロセス 』
https://ufcpp.net/study/csharp/sp_preprocess.html
という解説を見つけました。本来、プリプロセッサ命令でプログラムの実行範囲からはずした
部分は、コンパイルしなくていいはずなのに、同時に行っているため、はずした部分であっても、
そこに「文法エラー」があると、コンパイル不可能で止まってしまう。そのため、実行範囲と
した部分まで、たとえそこに「文法エラー」がなくても、結局、実行されなくなってしまう。
「HSP」も、この「C#」の場合と同じように考えていいのでしょうか。
「C言語やC++言語では本当に文字通り、 コンパイルの前に命令の解釈を行っていた」
ともありました。この順番にやってくれればいいのに、と思いますが、何故そうしなくなった
のでしょう。コンパイル出力のON/OFFと言いながら、その判断のために、スクリプトを進める
のと一緒に、コンパイルも進めているというのは、効率を上げるためだけのように思います。
その辺が曖昧で、私のような知識の乏しいものには、コンパイル出力をはずしているところまで、
何故、エラー判定を持ち込まれるのか、わからなかったのです。
どなたか、もう少し、わかりやすく説明していただけないでしょうか。