【问题标题】:What does #pragma once mean in C? [duplicate]#pragma once 在 C 中是什么意思? [复制]
【发布时间】:2011-08-12 05:24:09
【问题描述】:

可能重复:
#pragma - help understanding

我看到pragma很多次了,但总是一头雾水,有谁知道它是做什么的吗?它只有windows吗?

【问题讨论】:

    标签: c pragma


    【解决方案1】:

    pragma 是预处理器的指令。它通常用于在编译期间提供一些额外的控制。例如不要包含相同的头文件代码。有很多不同的指令。答案取决于语用词后面的内容。

    【讨论】:

      【解决方案2】:

      它用于替换以下预处理器代码:

      #ifndef _MYHEADER_H_
      #define _MYHEADER_H_
      ...
      #endif
      

      一个好的约定是同时添加两者以支持旧版编译器(这很少见):

      #pragma once
      #ifndef _MYHEADER_H_
      #define _MYHEADER_H_
      ...
      #endif
      

      因此,如果 #pragma once 失败,旧方法仍然有效。

      【讨论】:

        【解决方案3】:

        通常,#pragma 指令用于实现特定于编译器的预处理器指令。它们没有标准化,因此您不应过度依赖它们。

        在这种情况下,#pragma once 的目的是替换您在头文件中使用的包含保护以避免多次包含。它在支持它的编译器上运行得更快一些,因此它可以减少大型项目的编译时间,这些项目有很多 #include'ed 频繁的头文件。

        【讨论】:

          【解决方案4】:

          在 C 和 C++ 编程中 语言,#pragma once 是 非标准但广泛支持 预处理器指令旨在 导致当前源文件为 单曲中只包含一次 汇编。因此,#pragma once 服务 与#include 守卫相同的目的, 但有几个优点, 包括:更少的代码,避免名称 冲突,并提高了编译速度。

          有关详细信息,请参阅Wikipedia 文章。

          【讨论】:

          • pragma 是什么意思?我记不得了...
          • @wireshark 这是一个希腊词,“πράγμα”,正如here所说,它来自语用学。因为希腊语的确切含义是“事物”,但如果你关注它的位置来自,你可以说它的意思是“行动”。
          猜你喜欢
          • 2018-09-11
          • 2022-01-04
          • 1970-01-01
          • 2019-09-12
          • 2015-06-25
          • 2019-12-08
          • 2013-02-12
          • 2011-06-10
          • 2014-02-02
          相关资源
          最近更新 更多