Categories:
.NET (357)
C (330)
C++ (183)
CSS (84)
DBA (2)
General (7)
HTML (4)
Java (574)
JavaScript (106)
JSP (66)
Oracle (114)
Perl (46)
Perl (1)
PHP (1)
PL/SQL (1)
RSS (51)
Software QA (13)
SQL Server (1)
Windows (1)
XHTML (173)
Other Resources:
Is it acceptable for one header file to #include another?
Is it acceptable for one header file to #include another?
✍: Guest
It's a question of style, and thus receives considerable debate. Many people believe that ``nested #include files'' are to be avoided: the prestigious Indian Hill Style Guide disparages them; they can make it harder to find relevant definitions; they can lead to multiple-definition errors if a file is #included twice; they can lead to increased compilation time; and they make manual Makefile maintenance very difficult. On the other hand, they make it possible to use header files in a modular way (a header file can #include what it needs itself, rather than requiring each #includer to do so); a tool like grep (or a tags file) makes it easy to find definitions no matter where they are; a popular trick along the lines of:
#ifndef HFILENAME_USED
#define HFILENAME_USED
...header file contents...
#endif
(where a different bracketing macro name is used for each header file) makes a header file ``idempotent'' so that it can safely be #included multiple times; a clever compiler can avoid expending any more time on later instances of an already-included header; and automated Makefile maintenance tools (which are a virtual necessity in large projects anyway; andle dependency generation in the face of nested #include files easily.
2016-02-16, 1223👍, 0💬
Popular Posts:
If client side validation is enabled in your Web page, does that mean server side code is not run? W...
How do I debug thread ? This window is only seen when the program is running in debug mode. In windo...
What is the concept of XPOINTER? XPOINTER is used to locate data within XML document. XPOINTER can p...
What Is URI? URI (Uniform Resource Identifier) is a superset of URL. URI provides a simple and exten...
What is NullPointerException and how to handle it? When an object is not initialized, the default va...