test1.h
extern int extern_n;
test1.c
#include "test1.h"
extern_n = 100;
int add_one(void)
{
return ++extern_n;
}
test2.c
#include <stdio.h>
#include "test1.h"
void my_print(void)
{
printf("extern variable: %d\n", extern_n);
}
main.h
extern void my_print(void);
extern int add_one(void);
main.c
#include <stdio.h>
#include "test1.h"
#include "main.h"
int main(int argc, char **argv)
{
my_print();
extern_n = add_one();
my_print();
return 0;
}
/*
run:
extern variable: 100
extern variable: 101
*/