4

私は最近C++の学習を開始し、Ruby環境から来て、プロジェクトを正しくコンパイルできるように構造化するのが非常に難しいことに気付きました。Code:: Blocksを使用していますが、これは素晴らしいですが、欠点は追加すると新しいヘッダーファイルまたはc++ソースファイルは、いくつかのコードを生成します。それはたった3行または4行ですが、これらの行が何をするのかわかりません。まず第一に、私はこの質問をしたいと思います:

これらの行は何をしますか?

#ifndef TEXTGAME_H_INCLUDED
#define TEXTGAME_H_INCLUDED

#endif // TEXTGAME_H_INCLUDED

2番目の質問は、.hファイルと.cppファイルの両方を#includeする必要があるかどうか、およびその順序です。

私の3番目の質問は、Code ::Blocksと一緒にパッケージ化されたGNUGCCコンパイラーをどこで見つけることができるか、そしてCode ::Blocksなしでそれをどのように使用するかです。私はRubyで慣れているので、メモ帳++のような方法で開発したいと思いますが、C ++がコンパイルされているため、考え方が異なる場合があります(それについてもアドバイスや意見をお聞かせください)

よろしくお願いします。

編集:私はWindows XPを使用しており、高速応答に感謝します。

4

4 に答える 4

3

これは、.hファイルが2回インクルードされるのを防ぐためのインクルージョンガードです。時間を節約することに加えて、これは実際、物事を2度定義することを避けるために実際に必要とされることがよくあります。

.hのみを含める必要があります。.cファイルは何らかの形でプログラムにリンクされます。小さなプログラムの場合は、すべての.cファイルをgccに渡すことができますが、大きなプログラムには、中間の.oファイルまたはライブラリ(静的または動的)が含まれます。

IDEがなくても間違いなく作業できます。CygwinMinGWなど、Windowsにgccコンパイラをインストールする方法はたくさんあります。Code :: Blocksにはgcc実行可能ファイルが付属しているのは正しいと思いますが、それがどこにあるのか、どのバージョンなのかわかりません。

于 2010-04-25T11:50:03.333 に答える
3

あなたの質問に答えるには:

  • ラインには警備員が含まれています。これらは、ヘッダーファイルが特定の翻訳単位に複数回インクルードされるのを防ぎます。複数回含まれていると、おそらく複数の定義エラーが発生します。

  • ヘッダーファイルは、.cppファイルおよびその他のヘッダーに#includeされます。.cppファイルは通常#includeされません。

  • Code ::Blocksに付属するC++コンパイラはMinGWGCCと呼ばれ、MinGWインストールのbinディレクトリにあります。それを見つけるには、エクスプローラーで「g++」をWindowsサーチします。これを使用するには、検索パスにそのディレクトリを配置する必要があります。Code :: Blocksに付属しているコンパイラのバージョンはかなり古いことに注意してください。ここから、はるかに新しいバージョンを入手できます。

于 2010-04-25T11:51:36.643 に答える
1

これらの行により、ファイルが#includeされた場合、すべてが引き続き機能するようになります。これにより、ヘッダーファイルの依存関係を単純な有向グラフとして扱うことができます。これは間違いなく最も簡単です。

.cppファイルを#includeしません。(まあ、あなたが邪悪なプログラマーでない限りではありません。それをしないでください!)

他の人(またはグーグル!)にgccについて教えてもらおうと思いますが、使用しているプラ​​ットフォームを説明する場合に役立つかもしれません。

于 2010-04-25T11:52:32.807 に答える
-1

これを除いて、あなたの質問はすべて他の人によって答えられました:

私はRubyで慣れているので、メモ帳++のような方法で開発したいと思いますが、C ++がコンパイルされているため、考え方が異なる場合があります(それについてもアドバイスや意見をお聞かせください)

これは非常に悪い考えだと思います。統合デバッガー、シンボル定義へのジャンプ、リファクタリング機能、プロファイラー、インテリセンスなどを備えた本格的なIDEは、実際のプロジェクトでは必須です。

そして、絶対に最高のものは、 Visual AssistX **を備えたVisualStudio*です。Code :: Blocksは比較すると見劣りします;)


*大学で勉強している場合は、通常、MSDNAAから無料で入手できます。それ以外の場合は、VisualStudioExpressエディションが無料です
**30日間の評価期間

于 2010-04-25T12:02:24.183 に答える