C言語でファイルを分割した際に、別のファイルの変数を使う方法を書いていきます。
1. ヘッダファイルを使う方法
main.c
から、別ファイルの変数 sum
にアクセスする例を記載します。
1.1. アクセスされる側の実装
ヘッダファイルで、extern の変数を宣言します。
calc.h
#ifndef _CALC_H_ #define _CALC_H_ extern int sum; void add(int a, int b); #endif
ソースファイルで、グローバル変数を定義します。
calc.c
#include "calc.h" int sum; void add(int a, int b) { sum = a + b; }
1.2. アクセスする側の実装
ヘッダファイルをインクルードして、グローバル変数を使用します。
main.c
#include <stdio.h> #include "calc.h" int main() { add(1, 2); printf("1+2=%d\n", sum); return 0; }
2. ヘッダファイルを使わない方法
上の方法が一般的ですが、ヘッダファイルを使ずにアクセスすることもできます。
2.1. アクセスされる側の実装
グローバル変数 sum
を定義します。
calc.c
int sum; void add(int a, int b) { sum = a + b; }
2.2. アクセスする側の実装
extern宣言をして、上のグローバル変数を使用します。
main.c
#include <stdio.h> extern int sum; int main() { add(1, 2); printf("1+2=%d\n", sum); return 0; }
3. 実行結果
上の 1 と 2 の実行結果は同じで、以下の文字列が出力されます。
1+2=3