掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ヘッダファイルの書き方 (ID:51304)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> VC++6.0で、関数を自作し、これをライブラリ化したいと考えています。 > さらに、このライブラリにある関数を呼び出したいのですが、そのため > には、ヘッダファイルを書かなければいけないと思うのですが、このヘッダ > ファイルの書き方がぜんぜんわかりません。 必要な宣言のみを書けばいいです。 宣言でなく,構造体・クラス等の定義が含まれる場合はインクルードガードする必要があります。 #C++のインライン関数は定義も書く。 example 1) 関数 int func (int, struct bar *); を宣言し,funcがfuncが利用する構造体 struct bar; を定義する場合。 ---- func.h ---- #ifndef FUNC_HEADER_FILE_ #define FUNC_HEADER_FILE_ struct bar { /* メンバ */ }; int func (int, struct bar *); #endif /* !defined(FUNC_HEADER_FILE_) ---- func.h ---- 最初の#ifndef, #defineと最後の#endifのことを,インクルードガードといいます。 無いとどうなるかは,これらを除いて, #include "func.h" #include "func.h" とやってみればわかると思います。 example 2) 関数 int func (int, struct bar *); と struct bar; を宣言する場合。 ---- func.h ---- struct bar; int func (int, struct bar *); ---- func.h ---- こんどは,struct barの定義が無くても利用できる場合です。 この場合は,定義が存在しないので,インクルードガードは不要です。 #定義が存在しなくても,インクルードガードをしておくのが普通。 example 2のようなのは使い道がない,と思うかもしれませんが, 標準CライブラリのFILEのように,内部を公開する必要がない構造体に関しては, 宣言だけで済ますことができます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.