【发布时间】:2011-07-19 22:31:08
【问题描述】:
将#pragma once 放置在包含保护内部和外部有什么区别?
案例一:
#ifndef SOME_HEADER_H
#define SOME_HEADER_H
#pragma once
案例2:
#pragma once
#ifndef SOME_HEADER_H
#define SOME_HEADER_H
出于好奇,我只是想知道是否有任何特殊情况我应该更喜欢其中一种(案例 1 或案例 2),因为我决定在我的代码中结合两者(pragma 和 header 保护)。
编辑:
我认为你们误解了我的问题...我问的是pragma once 的位置,而不是 pragma once -vs- header guards。
【问题讨论】:
-
两者都包含是非常多余的,你不觉得吗?我只会使用定义进行检查。
-
@Tim:它们在识别“pragma once”的编译器上是非冗余的,但不执行 gcc 所做的巧妙优化,以发现何时标头保护允许它不打扰重新- 访问文件。至少某些版本的 MSVC 处于那种状态,不知道最新的。
-
我认为你们误解了我的问题......我问的是 pragma once 的位置,而不是我是否应该使用 pragma once 或 header guards。
标签: c++ c include-guards