假設我有a.h
其中包括以下內容:預處理器的#ifndef
<stdbool.h>
<stddef.h>
<stdin.h>
假設我也有b.h
其中還包括<stdbool.h>
。如果a.h
在其中有#ifndef
預處理器定義語句,並且b.h
沒有。 a.h
只會包含b.h
中未包含的內容嗎?因此,當b.h
包括a.h
時,a.h
將包括stddef.h
和stein.h
而不是重新包含stdbool.h
還是那些預處理器定義函數僅用於查看整個類是否被重新定義,而不是其中的特定函數?
編輯:
此外,假定b.h
包括另一頭文件包括stdbool.h
- 即使b.h
具有stdbool.h
既從該類和a.h
。會導致錯誤嗎?
定義的完整標題一旦你從多個文件中使用相同的頭文件,無論如何都會導致鏈接錯誤,所以不要這樣做。 – 2012-03-13 19:16:46