什么用途是#" #include"线?

时间:2015-08-15 01:27:06

标签: include c-preprocessor

对于" #include"是否有任何实际用途进行宏扩展?线?

例如,像

这样的头文件
// calculated_include.h
#define THE_STRING "Hello, World!\n"

然后是C或C ++文件,如

// calculated_include.c
#define HEADER_MACRO "calculated_include.h"
#define STDIO <stdio.h>

#include STDIO
#include HEADER_MACRO

int main(void){
        printf("%s", THE_STRING );
}

然后从命令行我做

make calculated_include
./calculated_include

并打印出来,正如您可能已经猜到的那样,

  

你好,世界!

我看到一些人在#34; #include&#34;第"calculated includes"行或"computed includes"行;有更好的名字吗?

我看到一个人想在&#34; #include&#34;中使用文本替换。文件,因此在gcc命令行上使用&#34; -D&#34;指定文件名。选项将被替换为&#34; #include&#34;声明( How can I specify an include file from the GCC Command Line?)。 但在我看来,直接使用&#34; -include&#34;指定该文件名。命令行选项(Include header files using command line option?"Options Controlling the Preprocessor")会更简单,也可以正常工作。

&#34; #include&#34;是否有任何其他用途进行宏扩展?线?

1 个答案:

答案 0 :(得分:0)

一个用例是,它可以帮助您选择要包含在程序中的几个不同头文件中的一个。 check this link