我有test.h
文件和example.h
文件,我想包括在其他每個 我嘗試了以下,但沒有奏效。包括文件問題
在文件test.h:
#ifndef "example.h"
#define "example.h"`
...
#endif
而且在文件example.h文件:
#include "test.h"
後來又嘗試過:
#ifndef "test.h"
#define "test.h"
...
#endif
但毫無效果。
我有test.h
文件和example.h
文件,我想包括在其他每個 我嘗試了以下,但沒有奏效。包括文件問題
在文件test.h:
#ifndef "example.h"
#define "example.h"`
...
#endif
而且在文件example.h文件:
#include "test.h"
後來又嘗試過:
#ifndef "test.h"
#define "test.h"
...
#endif
但毫無效果。
你需要拿出一些獨特的標識符每個包括警衛。例如:
#ifndef EXAMPLE_H
#define EXAMPLE_H
...
#endif
你不能只使用具有的#ifndef等
嘗試它,它停止給予我關於包含部分的錯誤..非常感謝 – Katia 2011-03-26 20:24:32
您可能會發現兩個同名的包含文件。 (例如,一個可能在庫中,所以你不知道它)爲了避免有兩個文件帶有「'#define EXAMPLE_H'」,我有時使用一個唯一的標識符,比如一個GUID。例如「'#define EXAMPLE_H_B09BD769_5844_11E0_A3B6_6CF0494804C2'」 – 2011-03-27 07:36:38
也許你應該寫象下面這樣:
在文件test.h:
#ifndef __TEST_H__
#define __TEST_H__
#include "example.h"
#endif// __TEST_H__
在文件example.h文件:
#ifndef __EXAMPLE_H__
#define __EXAMPLE_H__
#include "test.h"
#endif//__EXAMPLE_H__
您不能在文件名。這種方式去循環包括地獄。通過定義結構解決您的問題,您使用
example.h文件
class bar;
class foo
{
bar* barPtr;
}
test.h
class foo;
class bar
{
foo* fooPtr;
}
這就是我們正在做的事情..我做了一個類.h和.cpp和其他隊友做了另一個。現在我的功能需要使用其他類的對象,反之亦然..那是什麼導致了圓圈在第一個地方 – Katia 2011-03-26 20:09:31
你的問題不會由#ifdef的解決。嘗試在第三個標題中移動常見結構,並將其包含在兩個項目中,或應用上述解決方案。 – cprogrammer 2011-03-26 20:20:37
「它沒有工作」 - 嗯,我想沒有什麼工作要做。除非你能告訴我們什麼不行,你嘗試過什麼,你得到的具體消息等。 – Joe 2011-03-26 19:53:08
卡蒂亞。定義你的意思是「不起作用」。像這樣的循環依賴通常是一個設計錯誤。您可能想要顯示文件的內容,我們可以提出一些建議。 – 2011-03-26 19:54:59
@Joe我得到這個錯誤「致命錯誤C1016:#if [n] def期望標識符」 – Katia 2011-03-26 20:18:38