在C语言编译时,能否指定包含哪一个头文件吗?
你可以通过#if,#else和#endif这组指令实现这一点。例如,头文件alloc.h和malloc.h的作用和内容基本相同,但前者供BorlandC++编译程序使用,后者供MicrosoftC++编译程序使用。如果你在编写一个既支持BorlandC++又支持MicrosoftC++的程序,你就应该指定在编译时是包含alloc.h头文件还是包含malloc.h头文件,请看下例:
#ifdef __BORLANDC__
#include<alloc.h>
#else
#include<malloc.h>
#endif
当用BorlandC++编译程序处理上例时,编译程序会自动定义__BORLANDC__标识符名称,因此alloc.h头文件将被包含进来;当用microsoftC++编译程序处理上例时,由于编译程序检查到__BORLANDC__标识符名称没有被定义,因此malloc.h头文件将被包含进来。
#ifdef __BORLANDC__
#include<alloc.h>
#else
#include<malloc.h>
#endif
当用BorlandC++编译程序处理上例时,编译程序会自动定义__BORLANDC__标识符名称,因此alloc.h头文件将被包含进来;当用microsoftC++编译程序处理上例时,由于编译程序检查到__BORLANDC__标识符名称没有被定义,因此malloc.h头文件将被包含进来。