linux-c-programming.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* include guards
@ 2007-06-15  3:43 Shriramana Sharma
  2007-06-20 12:43 ` wwp
  2007-06-20 15:09 ` Steve Graegert
  0 siblings, 2 replies; 3+ messages in thread
From: Shriramana Sharma @ 2007-06-15  3:43 UTC (permalink / raw)
  To: Linux C Programming List

Hello.

To prevent header files from being included more than once in the same 
translation unit, we use include guards like

# ifndef FOO_H
# define FOO_H
...
# endif

Recently I came to know that I can use simply:

# pragma once

instead of the above group of sentences and the desired effect is still 
accomplished.

This leads me to think of two things:

1. why use the ifndef-define-endif method when the pragma once method is 
simpler and cleaner?

2. why should we need to use either method at all? If it is a 
universally undesirable behaviour that the same header file is included 
in a translation unit more than once, then an intelligent compiler (or 
preprocessor) itself can by default take of this, right?

I understand that to write portable code that compiles on 
not-so-intelligent compilers, we may need to do something manually, so 
question 2 is answered, but question 1 still stands...

Shriramana Sharma.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-06-20 15:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-15  3:43 include guards Shriramana Sharma
2007-06-20 12:43 ` wwp
2007-06-20 15:09 ` Steve Graegert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).