Sunday, 6 November 2011

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

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

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.

Cross Reference:

II.16: What is the difference between declaring a variable and defining a variable?
II.17: Can static variables be declared in a header file?

No comments:

Post a Comment