2016-11-18 13 views
1

私はこの構造を私のCプロジェクトのヘッダファイルとして持っています。ヘッダファイルに関数を格納する

struct info{ 

char name[50]; 
char address[150]; 
char country[20]; 
char region[20]; 
char postalcode[10]; 
char phonenumber[15]; 
char paymethod[15]; 

}; 

しかし、私は関数をヘッダファイルに格納できますか?なぜなら、プログラム全体を維持する方が簡単だからです。

答えて

0

関数を記述し、それを拡張子.hのヘッダーファイルに保存すると、時間内に使用できるようになります。例として、私は今私がしなければならないすべては名前と拡張子を持つファイルを保存..です

int sumOfTwoInteger(int a ,int b){ 
    return a+b; 
} 

を2つの整数値を追加して、関数が呼び出されているときは常に合計を返す関数を作成します.H例えば ​​'myheader.h' 実際のプログラムと同じディレクトリにヘッダファイルを置きます。あなたの実際のプログラムの冒頭で は...

int sum; 
sum = sumOfTwoInteger(10,5); 

ヘッダファイル今

#include"myheader.h" 

あなたはいつでも好きなときに、その関数を呼び出すことができますを追加し、合計は、変数「合計」内に保存されます

+1

この作品に役立ちますプロジェクトに.hファイルを含む.cファイルが1つしかない場合に限ります。ヘッダーファイルを含む複数の.cファイルがあるとすぐに、リンク時に "多重定義"エラーが発生します。 –

2

適切なプラクティスは、関数プロトタイプ(関数宣言)をヘッダファイルに格納することです。関数の実装は ".c"ファイルになります。

1

ただし、関数をヘッダファイルに格納することはできますか?なぜなら、プログラム全体を維持する方が簡単だからです。

私はあなたがを定義する意味、で想定しています。

はい、あなただけの小さな関数のために良いですが、実際に、しかしC99またはC.

のそれ以降のバージョンを使用している場合inlineキーワードを使用して、ヘッダーファイル内の関数を定義することができます。

関数を.hファイルで宣言し、ほとんどの関数で.cファイルで関数を定義するのが最善です。

定義関数inlineは、プログラムのパフォーマンスを向上させることができますが、宣言と定義も結合します。定義を変更する必要がある場合は、#include .hファイルのすべての.cファイルを再コンパイルする必要があります。プロジェクトの規模によっては、高価になる可能性があります。

1

関数をヘッダファイルに格納することはできますが、そうしないでください。

"単一操作のファイル"スタイルでプロジェクトを管理するのは簡単ですが、プロジェクトが大きくなると多くの機能がある場合、ヘッダーファイルを読み込んで定義するのが簡単になります。

そして、あなたはあなたのコードの再利用可能なようにしたい場合は、ヘッダファイル、あなたのライブラリ内のコードのバイナリのみの配布(つまり、あなたの実際のコードを公開することなく、ヘッダを通して、あなたの関数ライブラリを共有する)

関連する問題