#includeはプログラムの先頭とメイン関数の外側に記述する必要がありますか?Cプログラムのどこにでもプリプロセッサディレクティブを書くことができますか?
私は、メイン関数内の#defineプリプロセッサを使用してみました、それは私が定義するディレクティブが唯一例えば がprintf("%d",PI); #define PI 3.14
がすると言うの#define行の後に使用することができます使用して定義されている唯一のexception..thatが一定であるとうまく働いエラー "Undefined symbol PI"を返します。しかし、次のコードでは、私はすべてのエラー
#define PI 3.14
printf("%d",PI);
に遭遇しなかったCは、手続き型言語と手続き型言語はアプローチをトップダウン実装されているため、これはありますか?
また、main関数や他のプリプロセッサディレクティブで#defineしか使用できないことを知りたいですか?もし私たちがそれを使うことができたら? それ以外の方法で、#includeの代わりにmain関数内のすべてのプリプロセッサディレクティブを使用できますか?
」すべてのコンパイル警告を有効にする – chux
C標準(と私はPOSIX標準と信じている)には、次のことが必要であることに注意してください。それらが定義するヘッダはファイルスコープに含まれなければならず、外部宣言のスコープ内に含まれていなければなりません(関数宣言や変数宣言の途中で)。ヘッダーにシステムヘッダが含まれている場合は、後でファイルスコープの規則に従わなければなりません。インクルードは通常ファイルの先頭にありますが、これは必須条件ではありません。 –