例如,我想要兩個頭文件,它們可以依賴於另一個頭文件中的函數。爲什麼頭文件Head1.h不能包含一個包含Head1.h的頭文件Head2.h?
//Header1.h file
#include Header2.h
void h1(){
//...
func1();
}
void h2();
//Header2.h file
#include Header1.h
void func1();
void func2(){
//some other code...
h2();
}
這可能不是似乎什麼大問題,但爲了某些文件是邏輯嚴謹,我有時候想這種依賴。在編譯C++代碼時,我在Visual Studio中多次遇到此問題。但是,當我包括每個文件的相應的頭守衛這甚至從來沒有編制,即
#ifndef HEADER1_H
#define HEADER1_H
//Header1.h...
#endif
爲什麼沒有這可以嗎?或者,有什麼方法可以編譯這個,所以它會起作用嗎?
參見[向前聲明]建議(HTTP://計算器。com/questions/4757565/c-forward-declaration) – Miki
請勿將標題中的定義。 –