C++标头保护语法和标头放置

C++ Header Guard Syntax and Header Placement

本文关键字:保护 C++ 语法      更新时间:2023-10-16

我的问题是关于标题保护的正确语法和使用。例如,如果我在C++代码中包含一些通用库,我可以像下面显示的那样制作一个标头保护吗?此外,从我可以找到的头文件文档中,建议将头保护放在头文件中。我正在使用Microsoft Visual Studio。我可以只将标头保护和 #include 文件放在我的主源文件中吗?还是这是一种不好的做法?我知道你可以用 #pragma 充当头球后卫。但是,这不是受支持的标准,因此我试图避免使用它。

#ifndef HEADER_GUARD
#define HEADER_GUARD
#include <iostream> 
#include <fstream>  
#include <string>
#include <iomanip>
#endif

任何帮助将不胜感激!

不应在源代码 (.cpp( 文件中编写标头保护。

我们也应该避免双头护卫 在C++中使用双包含护罩

标头保护是为了避免在编译代码期间多次包含标头文件。

另外,在添加 #include 文件时,请记住,我们不应该在那里添加不需要的文件。 例如 如果源文件需要#include <iostream>但包含在头文件中,请考虑这种情况,则应避免这种情况。这种情况仅在源文件中#include <iostream>

许多编译器都支持#pragma once,但它不是语言标准,并且不能保证何时从远程位置和不同的磁盘引用文件。