[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: reasons for having no inclusion guards in config.h

From: Steffen Dettmer
Subject: Re: reasons for having no inclusion guards in config.h
Date: Mon, 8 Mar 2010 14:31:15 +0100

On Mon, Mar 8, Bob Friesenhahn <address@hidden> wrote:
> It is also interesting to note that it is usually ok for the
> content of the header file to be parsed any number of times.
> The only exception might be with some weird macro expansion
> (but that would be a bug).
> The conditional inclusion of content is only an optimization.

If you have a struct definition (C/C++) or a typedef (C) in the
.h file, C compilers may refuse to process it twice and an
inclusion guard is needed:

address@hidden # cat x.h
typedef int counter_t;

address@hidden # cat x.c
#include "x.h"
#include "x.h"
int main(void) { return 0; }

address@hidden # gcc x.c
In file included from x.c:2:
x.h:1: redefinition of `counter_t'
x.h:1: `counter_t' previously declared here

address@hidden # tcc x.c
x.h:1:  Error: duplicate typedef 'counter_t'
x.c: 0 warnings, 1 error, 0 serious errors



reply via email to

[Prev in Thread] Current Thread [Next in Thread]