2015-11-17 36 views
4

我一直在玩gcc的-H選項,它打印出C和C++彙編(relevant section of the gcc manual)中直接和間接的信息。「多個包含警衛可能對」究竟是什麼?

作爲輸出的一部分,有一個部分「多個包含守衛可能有用:」,其中列出了一些項目和系統標題。

這是什麼意思,這個列表是如何確定的,爲什麼它說「多個」包括守衛可能有用?

(我熟悉的包括防護裝置的一般概念,以及爲什麼會想使用它們 - 我正在尋找有關此消息的特別,這意味着什麼爲我的項目詳細信息)

回答

4

在這種情況下,「多個」修改「包含」 - 不是「守衛」。所以「包括警衛」和「多個包括警衛」是一回事。也就是說,他們警惕多個包含同一個文件。

該列表是由類似於這樣的東西:首先,列表中考慮所有文件。但是,主文件被排除在外;和包含警衛的文件;用#import打開的文件;和文件有#pragma once

使用警衛的原因是他們使頭文件idempotent,他們可以減少編譯時間。 IMO是C和C++的最佳實踐。