Home »

Is it acceptable to declare/define a variable in a C header?

Question ListCategory: cIs it acceptable to declare/define a variable in a C header?
shah_kajal184 author asked 8 years ago
1 Answers
denielshakespeare5 author answered 8 years ago

A global variable that must be accessed from more than one file can and should be declared
in a header file. In addition, such a variable must be defined in one source file.

Variables should not be defined in header files, because the header file can be included in

multiple source files, which would cause multiple definitions of the variable. The ANSI C

standard will allow multiple external definitions, provided that there is only one initialization.

But because there’s really no advantage to using this feature, it’s probably best to avoid it

and maintain a higher level of portability.

Global variables that do not have to be accessed from more than one file should be declared

static and should not appear in a header file.

Please login or Register to Submit Answer