web-dev-qa-db-fra.com

Comment partager une variable globale entre des fichiers c?

Si je définis une variable globale dans un fichier .c, comment puis-je utiliser la valeur de la même variable dans un autre fichier .c?

fichier1.c

#include<stdio.h>

int i=10;

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

fichier2.c

#include<stdio.h>

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

Comment le second fichier peut-il utiliser la valeur i du premier fichier ici.

38
peter_perl

fichier 1:

int x = 50;

fichier 2:

extern int x;

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

Utilisez le mot clé extern pour déclarer la variable dans l'autre fichier .c. Par exemple.:

extern int counter;

signifie que le stockage réel est situé dans un autre fichier. Il peut être utilisé à la fois pour les variables et les prototypes de fonctions.

3
mdm

en utilisant extern <variable type> <variable name> dans un en-tête ou un autre fichier C.

2
Murali VP

Dans le deuxième fichier .c, utilisez le mot clé extern avec le même nom de variable.

1
Asha

Faites comme dans file1.cIn 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*/

Si vous utilisez int i; dans file2.c sous main (), je serai traité comme une variable automatique locale différente de celle définie dans fichier1.c

1
ami

Si vous souhaitez utiliser la variable globale i de fichier1.c dans fichier2.c, voici les points à retenir:

  1. la fonction principale ne devrait pas être là dans file2.c
  2. maintenant, la variable globale i peut être partagée avec file2.c de deux manières:
    a) en déclarant avec mot-clé extern dans fichier2.c i.e extern int i;
    b) en définissant la variable i dans un fichier d'en-tête et en incluant ce fichier d'en-tête dans fichier2.c.
0

Utilisez le mot clé extern dans un autre fichier .c.

0
Kiran Padwal