次のようなプリプロセッサ ディレクティブと行の両方を含むCファイルを見つけました。
# 9 "filename"
私はこれまでにそのような行を見たことがありません。彼らはどういう意味ですか?これらはプリプロセッサ ディレクティブだと思いますが、プリプロセッサはそれらをどうするのでしょうか?
また、一部の行では、文字列は既存のファイル名を表していません...
次のようなプリプロセッサ ディレクティブと行の両方を含むCファイルを見つけました。
# 9 "filename"
私はこれまでにそのような行を見たことがありません。彼らはどういう意味ですか?これらはプリプロセッサ ディレクティブだと思いますが、プリプロセッサはそれらをどうするのでしょうか?
また、一部の行では、文字列は既存のファイル名を表していません...
#lineプリプロセッサ ディレクティブを使用する別の方法だと思います。
たとえば、次のように記述できます。
// you could write #line 7 "filename" or
// # 7 "filename" or
// # 7 or
#line 7
int main(void)
{
printf("%d\n", __LINE__);
そして、それらすべてが(この場合)10
on を提供しstdout
ます。
また、「ファイル名」の部分については、オプションで検証されていないことに注意してください (そのため、存在しないファイルであっても、何でもかまいません)。その使用法は、私が提供したリンクで説明されています-
If you specify a file name, the compiler views the next line as part of the specified file. If you do not specify a file name, the compiler views the next line as part of the current source file.