Как разделить глобальную переменную между файлами c? - PullRequest
44 голосов
/ 22 июля 2011

Если я определяю глобальную переменную в файле .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 из первого файла здесь.

Ответы [ 7 ]

61 голосов
/ 22 июля 2011

файл 1:

int x = 50;

файл 2:

extern int x;

printf("%d", x);
3 голосов
/ 22 июля 2011

Используйте ключевое слово extern, чтобы объявить переменную в другом файле .c.Например:

extern int counter;

означает, что фактическое хранилище находится в другом файле.Может использоваться как для переменных, так и для прототипов функций.

2 голосов
/ 22 июля 2011

с использованием extern <variable type> <variable name> в заголовке или другом файле C.

1 голос
/ 26 ноября 2015

Если вы хотите использовать глобальную переменную i из file1.c в file2.c, то ниже следует запомнить следующие пункты:

  1. главная функция не должна быть в file2.c
  2. теперь глобальная переменная i может использоваться совместно с file2.c двумя способами:
    а) объявив с ключевым словом extern в file2.c то есть extern int i;
    б) определив переменную i в заголовочном файле и включив этот заголовочный файл в file2.c.
1 голос
/ 22 июля 2011

Сделайте то же самое, что вы сделали в 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 (), тогда я буду обрабатываться как локальная автоматическая переменная, отличная от определенной в file1.c

1 голос
/ 22 июля 2011

Во втором .c файле используйте ключевое слово extern с тем же именем переменной.

0 голосов
/ 08 ноября 2015

Использовать ключевое слово extern в другом файле .c.

...