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:
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