Re: the pros and cons of "catch-all" header files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Robert

On 8/10/06, Robert P. J. Day <rpjday@xxxxxxxxxxxxxx> wrote:

  over the next few days, i'm going to have some general design-type
questions as i try to restructure a project i'm working on, so i'm
hoping i don't wander too far from the mandate of the list.

Goodie !!  I hope this will be as fun for us as it is for you !!


  on this current project, there is frequent use of what i call
"catchall" header files.  rather than have individual source files
pull in just those header files they need, a monster "catchall.h" file
is created that contains almost all project-related inclusions, so
that source files need only:

  #include "catchall.h"

  sure, it's convenient, but there are also some obvious downsides.
the simple question -- is there a defensible rationale for this
approach?  i personally don't like it and would prefer source files to
be more selective, but the argument i keep hearing is, "it's more
convenient."

I use a similar design architecture in my project.
I think the convinience factor comes in when the project is REALLY
large and, more impostantly, spread out.

In fact, in my project, I have a a heirarchy of these "catchall" header files.
Eg. A module has a catchall file for all its sub-modules, A component
has a catchall header file for all its modules, an interface for is
components, a product for all its interface and components.... so on
and so forth.

I can't imagine being selective with the header files as I would end
up with tens of 100s of LOC of only header file declaration.
Not to mention the tediousness of the selection procedure.



--
Raseel.
http://osd.byethost8.com
http://raseel.livejournal.com
-
: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux