2017-06-22 33 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