Avoiding Double Header Includes
Ian Lance Taylor
iant@google.com
Wed Sep 8 01:03:00 GMT 2010
Tom Browder <tom.browder@gmail.com> writes:
> The cpp manual states:
>
> <quote>
> CPP optimizes even further. It remembers when a header file has a
> wrapper `#ifndef'. If a subsequent `#include' specifies that header,
> and the macro in the `#ifndef' is still defined, it does not bother to
> rescan the file at all.
> </quote>
>
> Does that mean (1) the file is reopened but not scanned, or (2) does
> it mean the file is not even opened? It seems that (1) is probably
> the correct answer, but I'm looking for confirmation.
I believe that the file is not even opened.
> It makes a slight difference efficiency-wise, and there is a cpp
> "#pragma once" that will definitely avoid reopening the header after
> the first time it's read.
#pragma once is considered to be obsolete, because the default behaviour
is simpler.
Ian
More information about the Gcc-help
mailing list