mousey mousey - 7 months ago 26
C Question

Declaring,initializing and using a global variable in same header file

I am actually trying to use a variable that is initialized in a header file(say x.h) and want to use same variable inside inlined code in the same header file. The same variable is modified in another file (say y.c). How can i do this ? I would like to know a good way of doing this.


You can declare the global variable in the header file as extern, and then define it inside a code-module (i.e., ".c" file). That way you won't end up with multiple definition errors thrown by the linker.

So for example in your header file, a globally available int named my_global_var would have a declaration in a .h file that looks like:

extern int my_global_var;

Then inside a single .c file somewhere you would define and initialize it:

int my_global_var = 0;

Now you can use my_global_var in any other code module that includes the appropriate header file and links with the proper .c file containing the definition of the global variable.