peter_perl
peter_perl

Reputation: 813

How do I share a global variable between c files?

If I define a global variable in a .c file, how can I use the same variable in another .c file?

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;
}

How can the second file file2.c use the value of i from the first file file1.c?

Upvotes: 81

Views: 165759

Answers (8)

Tekshan Madhawa
Tekshan Madhawa

Reputation: 1

use extern keyword in second while defining variable value of first c file. //in first file double z =50;

//in second file extern double x;

Upvotes: 0

bharaniprakash tumu
bharaniprakash tumu

Reputation: 11

If you want to use global variable i of file1.c in file2.c, then below are the points to remember:

  1. main function shouldn't be there in file2.c
  2. now global variable i can be shared with file2.c by two ways:
    a) by declaring with extern keyword in file2.c i.e extern int i;
    b) by defining the variable i in a header file and including that header file in file2.c.

Upvotes: 1

Kiran Padwal
Kiran Padwal

Reputation: 165

Use extern keyword in another .c file.

Upvotes: 1

ami
ami

Reputation: 11

Do same as you did in file1.c In 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*/

If you use int i; in file2.c under main() then i will be treated as local auto variable not the same as defined in file1.c

Upvotes: 1

mdm
mdm

Reputation: 12630

Use the extern keyword to declare the variable in the other .c file. E.g.:

extern int counter;

means that the actual storage is located in another file. It can be used for both variables and function prototypes.

Upvotes: 5

Asha
Asha

Reputation: 11232

In the second .c file use extern keyword with the same variable name.

Upvotes: 1

Murali VP
Murali VP

Reputation: 6417

using extern <variable type> <variable name> in a header or another C file.

Upvotes: 2

Rocky Pulley
Rocky Pulley

Reputation: 23301

file 1:

int x = 50;

file 2:

extern int x;

printf("%d", x);

Upvotes: 104

Related Questions