Two C source files include a single header file. The header file contains a declaration of a constant variable. However, the declaration prevents me from compiling and/or linking.
It all depends on what you want.
1. Do you want a single global variable called number that's available to both units?
2. Do you want two distinct variables called number visible to each unit?
If they were two distinct variables, you'd need to declare them static in each compiled unit.
Have a look at the treatment of errno in the C header files. errno is a global available to all C/C++ compiled units and so is declared externint errno;