2009-11-11 131 views

回答

5

您需要將警衛放入您的標題中,以免它多次包含在內。對於文件「my.h」,你可以沿的線條添加的東西:

#ifndef MY_H 
#define MY_H 

// Header declarations here 

#endif 

這種方式,您可以包括.h文件多次,但它只會被列入第一次。

+0

THX很多:D難道我只是需要把頁眉或做我需要把整個文件或全班 – 2009-11-11 01:51:28

+0

所有的頭文件的內容會裏ifdef。這包括你的類定義,但不包括你的方法定義。 – dj2 2009-11-11 01:52:55

+1

@ dj2:爲什麼不是方法定義? – 2009-11-11 04:15:32

4

#include將用文件內容替換#include語句;因此具有相同文件的多個#include將多次重新定義元素。典型的方式是一種保護措施,如:

/* file foo .h */ 
#ifndef _FOO_H 
#define _FOO_H 

/* content */ 

#endif 
+0

thx;)現在我明白了爲什麼它放在任何地方。 – 2009-11-11 01:44:12

+3

對此回答的小預訂: IIRC「領先的核心代碼+主要的大寫字母」名稱僅用於符號名稱而非宏。但對於一致性,我會說不要使用宏的前導下劃線。在我的店裏,我們去了「Foo_h_included_」的表格。與任何東西發生衝突的Chnaces都很小。 – 2009-11-11 01:48:42

+0

因此,您不需要添加_included的前導下劃線,並遵循這種情況? – 2009-11-11 01:54:57