簡體   English   中英

為什么stdafx.h中不需要頭文件保護?

[英]Why are header guards unnecessary in stdafx.h?

我不明白為什么在預編譯的標題中沒有使用標題保護...任何想法?

因為"stdafx.h"必須是.cpp文件中第一個包含 ,而不是其他任何地方。

如果你所做的只是包含其他標題,則沒有必要。 如果這些文件不能多次包含,他們將擁有自己的標題保護。 stdafx.h本身並不關心它被包含多少次,除非你使用它錯了。

通常,stdafx.h每個cpp文件只包含一次,作為第一個語句,通常,沒有其他文件會包含它。 因此,遞歸包括stdafx.h的可能性很小,因此包含守衛的“不必要”。

我仍然建議使用一個,以防萬一,或者可能在文件頂部使用#pragma once

我不知道預編譯頭的代碼,但我猜它包含一個“#pragma once”,它具有相同的效果但只適用於VS(至少它不是標准的)。 我記得向導使用這些創建了MFC文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM