2011-02-03 10 views
1

ヘッダファイルを使用せずにcプログラムを書くことは可能ですか?もしそうなら、どうですか?ヘッダファイルを使用せずにcプログラムを書くことができます

+0

を指定せずに使用printfのために同じのためのスクリーンショットで、OS、すなわち、またはベアメタルで走る、eGカーネルやブートローダー? – Rup

+0

@Rup:なぜそれは重要ですか? –

+0

@Cody私は、stdio.hなどの内容を想定しようとしているのですが、AFAICRは関数のどれかがマクロであることが許されていないため不可能です。したがって、標準からprintfの署名を書き出すとしても、実際には、リンクされる_printfの下にあります。なぜなら、標準ライブラリがそれをマクロにしてしまったからです。 – Rup

答えて

3

もちろんです。

ヘッダーファイルは、一部のソースファイルに含まれる単なるファイルであり、ファイルを含めるとその内容をコピーするだけです。

#includeを使用せずに任意のプログラムを書くことができますが、必要なものを手動でソースファイルに入れる必要があります。もちろん

+0

私はこのことを認識していない人がいると思います。私はこの答えと呼ぶだろう "アイ・オープナー"です。 – pasha

14

int main() { 
    return 0; 
} 

あるいは:

int printf(const char *format, ...); // could be copied from stdio.h 

int main() { 
    printf("Hello, world!\n"); 
    return 0; 
} 

#includeディレクティブが効果的にだけで、ソースファイルのヘッダファイルの内容が含まれています。

0

は絶対にはい、あなたも、あなたはおそらくCファイル自体

0

に必要な関数プロトタイプをinlinmeすることができますはい、ヘッダファイルなしで簡単なプログラムを書くことは可能ですが、なぜあなたはそれを行うのでしょうか?

ヘッダーファイルは、複数のファイルまたはモジュール間で定義、定数、関数プロトタイプなどを共有するのに便利です。

0

私はCで可能な最短のコードを書こうとしていたので、ソースコードからヘッダーファイルを削除しようとしました。私の驚きにもprintfを使ったプログラムでさえ警告だけでコンパイルして成功しました。

main() { printf( "Hello World \ n"); }

-1

はい、#includeなしでプログラムを作成できますが、プログラマーの複雑さが増すため、使用するすべての機能を手動で書き留めておく必要があります。多くの時間と慎重な注意が必要ですはい、上記のような単純なプログラムは、ライブラリ関数呼び出しを含めずに書いても問題ありません。

0

これは可能ですが、必要でない場合は使用しないようにしてください。

-1
#include<"filename"> 

#include< stdio.h> 

つまり、あなたがファイルに存在する関数を実装して使用するのに役立ちますがstdio.hファイルに存在組み込まれている関数を使用するために私たちを助ける - printfscanf

あなたのプログラムで#include< stdio.h>を使用しないと、それでも問題は発生しません。それは、printfやscanfを使用するとプログラムがgeコンパイル時に警告をネバーする(暗黙の関数宣言の場合はprintf)。同じ上)

詳細は、リンクの下には、標準ライブラリと環境の中で意味するか#include<stdio.h>

image

関連する問題