2017-06-22 31 views
-1

有没有办法用不同的配置(或不同的方法)指向唯一的头文件来设置单个项目。如何创建包含两个头文件的单个C源文件?

我想创建一个包含两个头文件(例如header1.hheader2.h)的C项目。在我的.c源文件中,我定义了两种配置。例如:

int main() 
{ 
#ifdef _print1_ 
#include "header1.h" 
#elif _print2_ 
#include "header2.h" 
#endif 
return 0; 
} 

现在,例如我想打印任何字符串作为输出。所以我想在我的头文件中声明。这是#ifdef print1需要执行header1.h#elif print2需要执行header1.h。请注意,我需要在不同文件夹中具有相同文件名的头文件。

你能请任何人协助我吗?

+4

什么?为什么?如果'header1.h'和'header2.h'文件可以有意地包含在'main()'的中间,这意味着它们包含代码,并且应该命名为'.c'。在命令行中定义'_print1'和'_print2'的位置在哪里? – unwind

+0

我想你应该在这里解释你最终的目标是什么,因为我觉得可能有不同的更正确的方法来实现它。 – SHG

+1

这是一个非常糟糕的编程思想的完美例子。并且在函数内包含另一个。 –

回答

0

如果你这样做,做这种方式:

#ifdef _print1_ 
# include "header1.h" 
#elif _print2_ 
# include "header2.h" 
#endif 

int main(void) 
{ 
    ... 

    return 0; 
} 
+0

我想声明一下,例如打印任何字符串console.I要拨打的那么header1.h为_print1_ configuration.As以及呼吁_print2_ configuration.Now的header2.h我如何声明这头文件? .so当选择_print1_时,它希望调用header.h并执行输出。 – nisha

+1

你不能*调用*头文件。你只能*包括*他们。 –

+0

@nisha:“*现在我怎么在头文件中声明这个*”这可能值得另一个问题。这个问题应该包括你尝试过的以及失败的地方。 – alk