Как разделить глобальную переменную между файлами 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 ответов
Использовать 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
Если вы хотите использовать глобальную переменную i из file1.c в file2.c, то ниже следует запомнить несколько моментов:
- Основная функция не должна быть в file2.c
- Теперь глобальная переменная i может использоваться совместно с file2.c двумя способами:
а) путем объявления с ключевым словом extern в file2.c, то есть extern int i;
б) путем определения переменной i в заголовочном файле и включения этого заголовочного файла в file2.c.
используйте ключевое слово extern во второй раз при определении значения переменной первого файла c. //в первом файле double z =50;
//во втором файле extern double x;