* header file at a top
@ 2011-12-17 21:57 Thiago Farina
2011-12-18 5:43 ` Jeff King
0 siblings, 1 reply; 2+ messages in thread
From: Thiago Farina @ 2011-12-17 21:57 UTC (permalink / raw)
To: Git Mailing List
Hi folks,
I don't understand why in git the .h file is not included as the first
substantive line of the .c file.
i.e:
foo.c
--------------------------------------------------------------------
#include "foo.h"
/* in alphabetical order */
#include "bar.h"
#include "tiz.h"
Any particular reason we include the corresponding header file at some
random position in the source file?
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: header file at a top
2011-12-17 21:57 header file at a top Thiago Farina
@ 2011-12-18 5:43 ` Jeff King
0 siblings, 0 replies; 2+ messages in thread
From: Jeff King @ 2011-12-18 5:43 UTC (permalink / raw)
To: Thiago Farina; +Cc: Git Mailing List
On Sat, Dec 17, 2011 at 07:57:42PM -0200, Thiago Farina wrote:
> I don't understand why in git the .h file is not included as the first
> substantive line of the .c file.
>
> i.e:
>
> foo.c
> --------------------------------------------------------------------
> #include "foo.h"
>
> /* in alphabetical order */
> #include "bar.h"
> #include "tiz.h"
>
> Any particular reason we include the corresponding header file at some
> random position in the source file?
The first include in any git source file should be either
"git-compat-util.h", or something that includes it (usually "cache.h").
This introduces compatibility wrappers and definitions which may be used
by other headers.
After that, the next one could be "foo.h", and I do tend to like that
style (since it gives a check that foo.h has no surprising header
dependencies). But I think we simply don't bother caring about header
dependencies in git (i.e., we do have recursive includes in some places,
but we don't require them, and in practice the compiler will tell us if
a source file fails to include a depended-upon header).
-Peff
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-12-18 5:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-17 21:57 header file at a top Thiago Farina
2011-12-18 5:43 ` Jeff King
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).