【问题标题】:How to deal with pragma once?如何处理一次pragma?
【发布时间】:2021-05-01 12:42:02
【问题描述】:

据我了解,Visual Studio C++ 项目在头文件的最顶部使用#pragma once 以防止多次包含。

同样的,在 Qt Creator 项目中,使用

#ifndef   FILE_H
#define   FILE_H
// Code here
#endif

假设我有一个 Visual Studio 项目,我想使用 Qt Creator。 #pragma once问题如何处理?

如果可能,我不想编辑所有头文件。

【问题讨论】:

  • 我很确定 #pragma once 受到 Qt Creator 的支持。
  • #pragma once(或标头保护)由编译器(至少主要)处理,而不是 IDE。
  • #pragma once 会导致什么问题?请解释
  • 根据您的编译器或 C++ 版本,#pragma once 可以被忽略,或者编译器会抱怨 #pragma 不受支持。
  • 即使支持#pragma once,它也可能被足够复杂的目录结构所迷惑。这是一个很好的讨论:#pragma once vs include guards? 不要停留在第一个答案上。存在许多相互矛盾的观点,要真正解决问题,您必须阅读几个答案。

标签: c++ visual-studio qt c++17 qt-creator


【解决方案1】:

是的,真的,#pragma once 源自 Microsoft C++,但现在它至少被另外两个最常用的现代 C++ 编译器(即 GCC 和 clang)所支持。所以你应该没有问题。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-04-22
  • 2016-10-14
  • 1970-01-01
  • 2020-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多