bobby wrote:
On Feb 19, 11:13 am, "Malcolm McLean" <regniz...@btin ternet.com>
wrote:
>"bobby" <bsim...@gmail. comwrote in message
news:65******* *************** ************@41 g2000hsc.google groups.com...hi group,
>>Does the header file size or number in include(s) effect the size of
executable file?
In other world if i chose a large header file and include it with my
source file does it increase the size of the executable outcome at the
end?
Typically no.
Header usually contain prototypes and definitions of constants and
structures. All this textual apparatus is stripped away in the process of
compilation. Only code you actually call will inflate the executable.
This make sense
However I searched and found this forum at : http://forums.pcquest.com/forum/viewtopic.php?t=3999
that indicate "the larger the size of the header file , larger the
size of ur executable"
moreover it adds "Since this is a case of static binding, more the
size of ur executable, more is the system memory utilization"
It also recommend to divide header file into parts/groups so that your
program runs faster and their is no unnecessary searching which might
result in collision of declarations. comes from http://www.codeguru.com/cpp/tic/tic0056.shtml
I appreciate if you can clarify this for me
Sure. The first thing you quote is utter and absolute garbage. The
second one is largely about C++ rather than C; I've not read it
thoroughly, but you need to think carefully about the summary you gave.
How many header files will need to be searched if all the relevant
information is in one header? How many will need to be searched if it is
split over several headers? How likely are you to accidentally duplicate
names and declarations if you are maintaining several headers rather
than one?
It's important to think carefully how to arrange your information in
headers. Neither "one" nor "many" is the right answer for all cases. for
small programs with a few .c files, a single header often makes sense.
For larger projects, especially ones which are logically split into
different groups of functionality, it might make sense to have a header
for each of these groups containing the information which is essentially
private to that group, and another to contain all the program-wide
information which pulls the whole thing together.
In general, things like how long it takes to search headers are the last
things you should be worrying about. Forget about it, arrange your
headers logically for the overall program structure. Search times are
only likely to possibly become an issue with really huge projects, and
by the time you're in a position to be making decisions about things
like that you should have enough experience to get it right. One thing
to remember is that these are all compile-time issues only, they have no
effect on the final program. You're worrying about saving milliseconds
of compilation time for small projects, not normally something worth the
effort.