古いCファイルの単一の「#」

古いCファイルの単一の「#」

#私は古いCコード(Unix v6)を調べ始め、ファイルの先頭にあるシングルの目的が何であるか疑問に思いました.c。例えばhttps://github.com/lsahn-gh/unix-v6/blob/master/sys%2Fken%2Falloc.c

#
/*
 */

#include "../param.h"
#include "../systm.h"
#include "../filsys.h"
...

答え1

~からスティーブンジッタ~のRetrocomputing Stack Exchangeへの回答:

デニスM.リッチC言語の発展本論文は以下の背景を提供する。

[...] プリプロセッサは、元の言語自体に対するオプションの追加機能と考えられていました。実際、ソースプログラムの先頭に特別なシグナルが含まれていない限り、長年にわたって呼び出すことはできませんでした。

[...] 「開始部分の特殊信号」が#最初の文字です。

答え2

これはうまくいきません。 ~から規格の一つ(定義は変更されていません):

3.8.7 空の命令

意味論

フォーム前処理ディレクティブ

    #  new-line

効果はありません。

目的については以前お問い合わせいただきましたのでご確認くださいこれ例えば。 #のある行はソースコードでしか見えないので、当時は読みやすさに関連していたはずです。プリプロセッサは何も出力しません。しかし、それは単なる推測に過ぎず、実際には何の措置も取らず、まだそうです。

答え3

これは、その行が以前のCコードに固有のものではなく、プリプロセッサディレクティブであることを宣言します。

https://stackoverflow.com/questions/66548702/what-do-you-call-in-c-and-c

https://en.wikipedia.org/wiki/C_preprocessor

https://cplusplus.com/doc/tutorial/preprocessor/

関連情報