C言語入門 / 複数ソースファイルの使い方

 ホーム | インデックス  | 次のページ

グローバル変数

関数の外で定義した変数はグローバル変数と呼ばれて、他のソースファイルで定義された関数からも アクセスできます。 他のソースファイルにあるグローバル変数を参照するときは、externキーワードを使います。

 

ファイル内でのみアクセスできる外部変数と関数

関数の外で定義した変数や関数にstaticキーワードをつけると、そのファイルの外からのアクセスは できなくなります。

 

ファイル main.c

#include <stdio.h>

extern  int global;
extern int func2(int);

void main()
{
  int y;
  
  y = func2(1);
  printf("y = %d\n", y);
  printf("global = %d\n", global);
}

ファイル func1.c

#include <stdio.h>

int global = 100;

static int func1(int x)
{
  return x + 1;
}

int func2(int x)
{
  return x + 1;
}

 

練習問題

 

よくある質問と回答

No.質問回答
1 別のファイルにある関数を同じ名前で定義できますか? staticを関数の前に付けることにより可能です。
2 他のファイルにある外部変数を書き換えることはできますか? externを付けて宣言することにより可能です。