[clug] C programming question: What goes in 'include' files??

Martijn van Oosterhout kleptog at svana.org
Tue Aug 23 11:41:03 MDT 2011

On Wed, Aug 24, 2011 at 12:46:26AM +1000, steve jenkin wrote:
> The C code I've been looking at recently (hence desire for PPC & 386
> builds) has what appears to me some quirky traits:
>  - include files contain functions, not just their prototypes
>    [as well as the usual constant #defs]
> This wouldn't be A Bad Thing, but a library is built with two objects
> built using the same include, hence there are multiply defined functions
> (one from each include)...

Well, this is only a problem if they are public. It is not uncommon for
static (hence hidden) functions to be header files, usually declared
inline as well.

> ==> Question:
>  Is the practice of putting executable code (not hidden with #ifdefs) in
> include files, usual or normal???
> Is it considered 'good practice' in some C-style?

In general, unless it's static inline (so essentially a macro), don't
do it.

Of course C++ is the huge exception, but it changed the rules a bit to
make it work.

Have a nice day,
Martijn van Oosterhout   <kleptog at svana.org>   http://svana.org/kleptog/
> He who writes carelessly confesses thereby at the very outset that he does
> not attach much importance to his own thoughts.
   -- Arthur Schopenhauer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: Digital signature
URL: <http://lists.samba.org/pipermail/linux/attachments/20110823/6204bb32/attachment.pgp>

More information about the linux mailing list