Monday, 7 November 2011

Can you define which header file to include at compile time? in C programming

Can you define which header file to include at compile time?

Yes. This can be done by using the #if, #else, and #endif preprocessor directives. For example, certain
compilers use different names for header files. One such case is between Borland C++, which uses the header
file alloc.h, and Microsoft C++, which uses the header file malloc.h. Both of these headers serve the same purpose, and each contains roughly the same definitions. If, however, you are writing a program that is to
support Borland C++ and Microsoft C++, you must define which header to include at compile time. The
following example shows how this can be done:

#ifdef _ _BORLANDC_ _
#include <alloc.h>
#else
#include <malloc.h>
#endif

When you compile your program with Borland C++, the _ _BORLANDC_ _ symbolic name is automatically
defined by the compiler. You can use this predefined symbolic name to determine whether your program is being compiled with Borland C++. If it is, you must include the alloc.h file rather than the malloc.h file.

Cross Reference:

V.21: How can you tell whether a program was compiled using C versus C++?
V.32: How can you check to see whether a symbol is defined?

No comments:

Post a Comment