ヘッダファイルの使い方

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
AliceCoder
記事: 51
登録日時: 7年前

ヘッダファイルの使い方

#1

投稿記事 by AliceCoder » 7年前

windows7 64bit,VC++でプログラミングしているんですけどヘッダファイルの正しい使い方が分からないです。
私は宣言のためにヘッダファイルを読み込むという認識でつかっております。
ところがこの前ヘッダ関係のエラーに始めてあいました。
とりあえず同じヘッダファイルを読み込んでいる部分を少なくしたらエラーが出なくなりました。今でも詳しい原因は分かりません。
VC++では#pragma onceというのがあって、一度しか読み込まないことを保障してくれる?っぽいので使いたいヘッダを今までヘッダに書き続けてました。

説明がすごく下手ですが何がききたいかというと
何のヘッダを読み込んでいるのか分かりやすくするために、必要なヘッダを全て書く行為は間違っているのかどうかです。
例~
Aクラスヘッダ <stdio.h>
Bクラスヘッダ <stdio.h>
Cクラスヘッダ <Aクラスヘッダ><Bクラスヘッダ><stdio.h>
ここでCクラスはstdio.hを3回読み込んでいることになっています。これでいいのかどうかという質問です。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: ヘッダファイルの使い方

#2

投稿記事 by softya(ソフト屋) » 7年前

必ず必要でもないヘッダをヘッダ中でインクルードをするのは余り良くありません。
ヘッダ中でヘッダをインクルードするのは止む負えない事情(ヘッダ中で他のヘッダで宣言された構造体を使っている場合)などに限定されると思ってください。
理由は可読性・メンテンナンス性が下がるからです。無駄な依存性は修正を厄介にします。

ヘッダに書くものはクラスや構造体やtypedefや定数など最低限のものに絞り込む必要があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

AliceCoder
記事: 51
登録日時: 7年前

Re: ヘッダファイルの使い方

#3

投稿記事 by AliceCoder » 7年前

softya(ソフト屋)さん回答ありがとうございました。
必要最低限のヘッダを読み込むことにします

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: ヘッダファイルの使い方

#4

投稿記事 by softya(ソフト屋) » 7年前

AliceCoder さんが書きました:softya(ソフト屋)さん回答ありがとうございました。
必要最低限のヘッダを読み込むことにします
もしエラーが再現できるなら、ここに貼ってもらうとアドバイスできると思います。
ヘッダのインクルード順で起きる問題とかにも対象方法があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

AliceCoder
記事: 51
登録日時: 7年前

Re: ヘッダファイルの使い方

#5

投稿記事 by AliceCoder » 7年前

今のところ大丈夫です。もしまたエラーが起きたら質問しますね
ありがとうございました

閉鎖

“C言語何でも質問掲示板” へ戻る