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

8 ответов

Решение

Файл 1:

int x = 50;

файл 2:

extern int x;

printf("%d", x);

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

extern int counter;

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

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

Во-вторых .c использование файла extern Ключевое слово с тем же именем переменной.

Сделайте то же самое, что вы сделали в 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

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

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

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

используйте ключевое слово extern во второй раз при определении значения переменной первого файла c. //в первом файле double z =50;

//во втором файле extern double x;

Другие вопросы по тегам