a.hというファイルを用意し、そこに
int a;
のように変数を宣言して、
a.hをインクルードしたファイルならどれでもaを使えるようにするにはどうすればよいのでしょうか?
したい機能としては、色々なファイルから使用することのできる変数の定義です。
類似したものでもかまいませんので、わかるようでしたらご教授のほど宜しくお願いします。
一つの C ファイルに、int a と定義し、他の C ファイルには
extern int a としてやれば良い。
まきじ様、ご返答ありがとうございます。
色々なサイトなども調べてはみたのですが、
externの使い方なのですが
>一つの C ファイル
というのをヘッダファイルと考え、そこに
extern int a;
とおき、
他の C ファイル(cppですが同じですよね・・?)の、関数などを宣言してあるヘッダファイルに
int a;
と宣言したのですが、エラーがでます。
上のcppファイルに定義した場合も同様です。
これがいわゆる多重定義だと思うのですが、これ以外にやりかたがわからず困っております。
もう少し詳しく教えていただけないでしょうか。
申し訳ありません。
ヘッダファイルには、extern int a; とし、
ある一つのC/CPPファイルにだけ int a; とします。
externをつけない専用のC/CPPファイルを利用する方法もあります。
これをヘッダファイルに書いてしまうと、複数箇所から#includeされて
しまいがちになります。
>ヘッダファイルと考え、そこに extern int a; とおき
>他の C ファイル(cppですが同じですよね・・?)の、関数などを宣言してあるヘッダファイルに int a;
int a は定義なので、どこか一箇所です。
複数の C ファイルに include されているヘッダーファイルに
定義してしまうと多重定義になります。
extern int a で ある一つの C ファイルに定義されてる
a と同じオブジェクトを参照することを宣言してあげます。
>多重定義になります。
ヘッダーファイルに定義されてる関数などが。
ツイート | ![]() |