が継承されている任意の.cpp
-file(正しい言葉のthats場合)、ヘッダファイルには、ファイル名に追加.h
を持つファイルです。私たちのC++クラスでは(常に(自然)言語を切り替え)非常に曖昧だったが、私は、ヘッダーは機能の宣言のみであり、他のディレクティブは、それらの関数を定義含ま理解してきたことから、右のことですか? 感謝:)C++:includeディレクティブとヘッダーファイルの違いは何ですか?私はincludeディレクティブを理解して何から
答えて
#include
は前プロセッサディレクティブです。プリプロセッサー指令プリプロセッサーの動作。プリプロセッサは、を処理する、すなわち、コンパイルする前にソースコードを変更する。
前プロセッサは、ディレクティブの引数であるファイルの内容を#include
ディレクティブを置き換えます。このように含まれるファイルは、通常、ファイルの先頭(先頭)に配置されるため、ヘッダーファイルと呼ばれます。だから、#include <iostream>
はiostream
というヘッダファイルの内容によって置き換えられます(を除いて、このようiostream
などの標準ライブラリヘッダはnecessarillyファイルとして存在していません)。ディレクティブでヘッダファイルの
含めると、複数のソースファイルの先頭に同じヘッダーを使用できます。しかし、C++標準では、複数のソースファイルに複数の関数と変数の定義(いくつかの例外があります)が許可されていません。このため、ヘッダーファイルには通常、定義ではなく関数と変数の宣言のみが含まれています。コンパイラは、関数を使用するプログラムを理解するために、関数と変数をコンパイラが知っていなければならないという宣言です。
インクルードディレクティブとヘッダーファイルの違いは何ですか?
includeディレクティブとヘッダーファイルの両方の説明からわかるように、それらは全く異なる概念です。あなたの質問は、「ペンとショートストーリーの違いは何ですか?」と似ています。あなたはペンで短編小説を書くことができますが、彼らは非常に似ていないので、彼らは非常に異なる概念です。同様に、インクルード・ディレクティブでヘッダー・ファイルをインクルードすることはできますが、ほとんど比較できません。
説明をありがとうございます。私の混乱は、ドイツ語のWikipediaの記事 "Header-Datei"が "Include directive"に英語でリダイレクトされているという事実から来ているに違いありません。 @エーマン私は見る。 – Eman
それは混乱を説明するでしょう。ご覧のとおり、Wikipediaのリダイレクトで2つの関係がどのような関係になっているかは、実際には仮定できません。 – user2079303
「そうでない場合を除いて、ヘッダファイルと呼ばれます。 –
A「ディレクティブは、」preprocessor macroを指し、これだけ
#include "foo.h"
を意味し、ヘッダファイルは、使用しての引き込みられるだけで、実際のファイルである「ディレクティブが含まれ、」すべてのヘルプ#include
directive。
@Eman違いはありませんが、ファイル名には '#include'ディレクティブに固有の意味がありません。ディレクティブは命令です: "このファイルを含める";ヘッダーファイルはインクルードされる「もの」(ファイル)です。 –
@Emanもう一度答えを読んでください: "includeディレクティブ"はコード行です。 "ヘッダファイル"は、インクルードディレクティブによって参照されることを意図したファイルです。それはあなたの質問へのかなり明確な応答です "違いは何ですか" –
のファイルに「.h」が含まれていないと、そのファイルに違いがあります(存在する場合)。
回答 - 'includeディレクティブ'との違いはありません。コンパイラはしばしば気にしますが、インクルードを正しく配置すると文句はありません。
おそらく例が役立つかもしれません。しかし、最初の要約:
ザディレクティブ
を含む - は含むディレクティブが
コンパイル単位を作成するために除去され、交換される(元のコードで)マーク - コードありません
- 置換テキストを含むファイルを特定します
置換テキストは、任意の種類のテキスト、コードでも、そうでなくてもかまいません。すべての構文ルールは引き続き適用され、コンパイラはインクルード・ディレクティブを見ることはできません。インクルード・ディレクティブ・ファイルの内容だけです。
int exec_3of3() // EXPERIMENT 3 of 3
{
// copied your data from the SO post to a file named 'dumy447.inc'
// using my editor (emacs) I lightly modified the file:
// 1) inserted a quote at the beginning
// 2) removed the only line feed (after the 2500)
// 3) appended a quote to the end of the file (after 11161)
// With these 3 changes, the file can be used directly in the code!
std::stringstream ssIn (
#include "./dumy447.inc"
);
assert(ssIn.good());
// BAM! - a stream filled with your text data
...
:念頭に置いて
、実際の機能を次のコードスニペットでは、クラスメソッド、属性の途中で、私はファイルを指定する「ディレクティブを含める」を持っていることに注意してください
私はincludeディレクティブがはっきりと見えると思います。このスニペットの最初の行には "#include"が含まれています。
この例では、指定されたファイル名は実行可能なコードではありません。慣習的に、.hh(や.hpp)や.cc(または.cpp) )。 (これらは、あまりにも動作することができますが、あなたの読者にもっと混乱するかもしれません。)
ファイルは、1つのラインを持っている単純なテキストです:
" 2500 19325 74348 68955 ... 48428 83799 91649 11161 "
^ ^
starts with double quote and ends with double quote
トリプルドットが、私は情報の多くを抑制していることを意味します。たとえば、このファイルには約14757文字の1行、すべての数字とスペースが含まれています。要約すると
:
何を、どこのいくつかの制限を持っている "ディレクティブには、"。コンパイラが間違っていると文句を言う。
コードを前処理した結果を「コンパイル単位」といいます。
"コンパイル単位"には、元のファイル( 'includeディレクティブ'を含む)のすべてのコードが含まれていますが、 'includeディレクティブ'は含まれていません。
'includeディレクティブ'は、ファイルの内容で置き換えられました。この場合、いくつかのデータを記述するテキストファイルです。
'includeディレクティブ'は、ファイル拡張子には何の関心も払わず、 '.hh'または '.cc'も使用しません。これは、コンパイラへの提出のために、さまざまなファイルを「コンパイル単位」に前処理するために使用されます。
- 1. ReSTのコードとコードブロックのディレクティブの違いは何ですか?
- 2. 拡張機能とphp.iniディレクティブの違いは何ですか?
- 3. GCCの '__IO'ディレクティブとは何ですか?
- 4. ASP.NETのディレクティブとは何ですか?
- 5. カスタムプレフィックスでディレクティブを書く方法は? `v-`とは違う何か?
- 6. ディレクティブがクラスを設定しない理由は何ですか?
- 7. ディレクティブとは何ですか? dojo dstore
- 8. '#include'と '## include'の違いは何ですか?たとえば
- 9. -lディレクティブは何をしますか?
- 10. jsp includeアクションタグとjsp includeディレクティブとの違い
- 11. Angular.JSのディレクティブは何ですか
- 12. #include "MyClass.h"と#include "。\ myclass.h"の違いは何ですか?
- 13. 角ディレクティブ:コントローラの範囲とリンク関数のスコープの違いは何ですか?
- 14. @interfaceディレクティブと@implementationディレクティブのかっこ内のテキストは何を意味していますか?
- 15. コンポーネントを宣言またはディレクティブに渡す違いは何ですか?
- 16. ディレクティブが突然何らかの理由で@Component
- 17. phpとrequireとincludeの違いは何ですか?
- 18. 同じコントローラ(サービスからの1つのコントローラ)とディレクティブの2つのスコープの違いは何ですか?
- 19. 「オーダー」とは何ですか?このrequirejs/amdモジュールのディレクティブ?
- 20. PHPのreturnディレクティブのアプリケーションとは何ですか?
- 21. androidのincludeタグとmergeタグの違いは何ですか
- 22. staloadとATSの#includeの違いは何ですか?
- 23. AngularJSのscope insideディレクティブとは何ですか?
- 24. Erlang: "include_lib"と "include"の違いは何ですか?
- 25. expressionengineにincludeタグとembedタグの違いは何ですか?
- 26. なぜ私のOpenMP simdディレクティブは何も使用していませんか?
- 27. テンソルードとエインサンの違いは何ですか?私の理解のために
- 28. AngularJSは、私は$私のディレクティブでアニメーション使ってクラスを追加したいディレクティブ
- 29. Angularディレクティブのコントローラのthis.ngIfは何をしますか?
- 30. 角度の2ユニットテスト:何のディレクティブは、私は、ブートストラップモーダルエクスポートコンポーネント作成した
***インクルードディレクティブは、継承された(正しい単語があれば).cppファイルです。***これは正しい単語ではありません。また、通常は.cppファイルは一切含んでいません。 – drescherjm