私はいくつかのCコースノートを読みます、そして すべての Cプログラムソースファイルはプログラムの最初の行の単一の#
で始まります。
それから空白行があり、それに続いてmain
関数が続きます。
#
の理由は何ですか?
(今は期限が切れているので、この章には実際に質問することはできません。)
これが例です:
#
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
うわー、この要件は帰りに1970年代に行きます。
あなたがプリプロセッサを呼び出したければ、非常に早い日の前に標準化されたCで、あなたはソースファイルの最初の行に最初のものとして#
を書かなければなりませんでした。ファイルの先頭にonly a #
と書くと、他のプリプロセッサディレクティブを柔軟に配置できます。
From すばらしいDennis Ritchie自身によるオリジナルのCドラフト :
12.コンパイラ制御行
[...]プリプロセッサを起動させるには、プログラムの最初の行を#で始める必要があります。空行はプリプロセッサによって無視されるので、この行は他の情報を含む必要はありません。
その文書は(そして私が狂った猫のようにこの質問に飛びつくことを可能にした)素晴らしい読書になります。
私はそれが単に感傷的である講師だと思う - それはANSI C以来確実に要求されていない.
C/C++のISO規格としては、
次の形式の前処理指令
# new-line
効果はありません。
そのため、今日のコンパイラでは、 空のハッシュは何もしません (like new-line ;
には機能がありません)。
_ ps _ :事前標準化Cでは、# new-line
が重要な役割を果たしていました。これはCプリプロセッサを呼び出すために使用されていました(@Bathshebaが指摘するように)。だから、ここでのコードはその期間内に書かれたか、習慣から来たものです。