This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Declaration of global variables in one header file

Hello everyone,

I'm trying to split the C source code of one file into nearly 10 different. It does not work properly due to global variables declared in one header file but used in more than one C files. Compiling of such a project works fine but the linking errors L104 and L118 occur.

My question: How can I prevent this errors without creating one header file for every C file?

My idea is the following, but it is complicated and additionally unsure if it works:

#ifdef CPVAR
extern unsigned char global_var1;
extern unsigned int global_var2;
extern unsigned long global_var3;
#elseif
unsigned char global_var1;
unsigned int global_var2;
unsigned long global_var3;
#define CPVAR
#endif

Maybe one of the experts knows a less complicated opportunity to prevent (these) linker errors.