local.h in scanf.c

J. Johnston jjohnstn@redhat.com
Thu Nov 20 16:23:00 GMT 2003


Doug Evans wrote:
> J. Johnston writes:
>  > Not true.  An external C header file "has" to be protected.
> 
> I left that as a given.  C'mon.
> 
>  > So, you 
>  > only get it twice if you directly include it twice in the same source file which 
>  > is a programming error, however insignificant.
> 
> That's a stretch.
> Over time who knows how the code might evolve.
> The practice of always protecting headers (that aren't intended to
> be included multiple times) means one less nuisance to deal with.

I'm not trying to start a battle.  Artem asked why the header file didn't have 
protection to start with.  The reason is that it was an internal header file 
written to satisfy some immediate need to the local C files.  It wasn't included 
indirectly and didn't require protection then or now as the previous double 
inclusion was not causing an error.  Artem only found a problem because he did 
his own local alteration of the header file.  His change is not posted.  I would 
  have expected any post from him to have fixed his problem one way or another.

I am not opposed to having header files protected.  It is a wise practice to 
prepare for future change, but it is not always required.  The newlib local 
header files are, for the most part, not protected and that's the state of 
things.  I contend they are doing what they were intended to do and there is a 
very low probability that they will ever need to prepare for multiple inclusion. 
  The one case of multiple inclusion thus far was a programmer error in scanf.c; 
local.h has been around since 1992.  I can't say how code will evolve, but I am 
prepared to make changes as needed to ensure newlib builds correctly.  To go 
through now and change all the local header files is IMO an unnecessary task.

-- Jeff J.



More information about the Newlib mailing list