web-dev-qa-db-ja.com

cファイル間でグローバル変数を共有するにはどうすればよいですか?

.cファイルでグローバル変数を定義する場合、別の.cファイルで同じ変数の値を使用するにはどうすればよいですか?

file1.c

#include<stdio.h>

int i=10;

int main()
{
printf("%d",i);
return 0;
}

file2.c

#include<stdio.h>

int main()
{
//some data regarding i
printf("%d",i);
return 0;
}

ここで最初のファイルのiの値を2番目のファイルで使用するにはどうすればよいですか。

44
peter_perl

ファイル1:

int x = 50;

ファイル2:

extern int x;

printf("%d", x);
61
Triton Man

externキーワードを使用して、他の.cファイルで変数を宣言します。例えば。:

extern int counter;

実際のストレージは別のファイルにあることを意味します。変数と関数プロトタイプの両方に使用できます。

4
mdm

ヘッダーまたは別のCファイルでextern <variable type> <variable name>を使用します。

2
Murali VP

2番目の.cファイルは、同じ変数名でexternキーワードを使用します。

1
Asha

File1.cで行ったのと同じことをfile2.cで行います。

#include <stdio.h> 

extern int i;  /*This declare that i is an int variable which is defined in some other file*/

int main(void)
{
/* your code*/

Int iを使用する場合; file2.cのmain()の下で、iはfile1.cで定義されたものとは異なるローカル自動変数として扱われます

1
ami

別の.cファイルでexternキーワードを使用します。

1
Kiran Padwal

File2.cでfile1.cのグローバル変数iを使用する場合、以下の点に注意してください。

  1. メイン関数はfile2.cにあるべきではありません
  2. グローバル変数iは、次の2つの方法でfile2.cと共有できます。
    a)file2.cでexternキーワードを使用して宣言します。つまり、extern int i。
    b)ヘッダーファイルで変数iを定義し、そのヘッダーファイルをfile2.cに含めます。
0