Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >需要澄清一下#语用一次

需要澄清一下#语用一次
EN

Stack Overflow用户
提问于 2014-02-17 19:00:55
回答 3查看 5.4K关注 0票数 6

我到处寻找一些关于#实用主义曾经做过什么的澄清,但仍然找不到确切的答案来回答我的一些问题。

#杂注是否曾经确保它包含在其中的头文件只被调用一次,以及包含在所述头文件中的头文件还没有包括在内?另外,如果只调用一次,是否意味着需要特定头的.cpp文件将无法访问它?如果头文件被标记为#杂注一次并包含在.cpp中,那么该头文件还能在其他地方使用吗?

这些都是我找不到的澄清。很抱歉,如果有文档澄清了这一点,但我真的找不到足够具体的东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-17 19:02:53

#pragma once只在一个翻译单元中保护一个文件,不包括其包含的子层次结构。(但是,如果该文件的第二次包含被阻止,它就没有机会加倍-包括任何其他内容。)

您仍然可以从另一个.cpp中再次包含它。

该文件通常由其inode编号标识。

请注意,#pragma once是严格不标准的,而且大多数人仍然倾向于传统的#ifndef头保护。

票数 8
EN

Stack Overflow用户

发布于 2014-02-17 19:03:19

#pragma once导致当前源文件仅在一次编译中包含一次。它本质上类似于#include警卫。

票数 4
EN

Stack Overflow用户

发布于 2014-02-17 19:18:18

是否曾经确保它包含在其中的头文件只被调用一次,并且包括在所述头文件中的头文件还没有包含?

该实用程序不影响其他标题。如果带有杂注“A.H”的标题包含“B.H”,则可以通过第三个标头或直接包含“B.H”。

如果只调用一次,这是否意味着需要特定头的.cpp文件将无法访问它?

您可以从任何您想要的任何地方包含标题,只要您认为合适的次数就可以。

如果头文件被标记为#杂注一次并包含在.cpp中,那么该头文件能否在其他地方再次使用?

是的,这是对头的正常操作。

渔获物在哪里?

如果您确实需要不止一次地包含头,那么每个include都会执行与不使用杂注一次或哨兵宏不同的操作。这些情况并不常见。

pragma once的一个好处是,它可以避免bug,比如有2个头文件,这些文件碰巧具有相同的哨兵宏。当2个头文件具有相同的文件名和相同的宏名称编码样式时,就会发生这种情况。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21843520

复制
相关文章
[系统安全] 四十.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法
该系列文章将系统整理和深入学习系统安全、逆向分析和恶意代码检测,文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。漫漫长征路,偏向虎山行。享受过程,一起加油~
Eastmount
2023/02/28
8.9K0
[系统安全] 四十.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法
利用powershell 生成sqlserver 对象脚本
首先,创建一个server 对象实例,然后连接它。我只需要引入Script() 方法,脚本如下:
用户1217611
2022/05/06
9170
使用管道符在PowerShell中进行各种数据操作
最近在培训PowerShell,在讲到Pipeline的时候,对于我这种长期和数据(数据库)打交道的人来说,觉得很实用,所以写此博文,记录一下。
深蓝studyzy
2022/06/16
2.3K0
关于go的只读管道只写管道以及单向管道的理解
上面的例子,writeChan只能对ch变量进行写操作,readChan只能对ch变量进行读操作,这样造成很多同学对管道理解就有了只读和只写管道了,其实管道都是双向的,默认双向可读写,只是管道在函数参数传递时可以使用操作符限制管道的读写,就如上面的例子。
公众号-利志分享
2022/04/25
1K0
PowerShell系列(七)PowerShell当中的Provider介绍
今天给大家讲解PowerShell当中的非常重要的概念Provider相关的知识,希望对大家能有所帮助!
小明互联网技术分享社区
2023/09/26
3920
PowerShell系列(七)PowerShell当中的Provider介绍
图片加载失败的正确处理[通俗易懂]
对于这样一段代码来讲,如果该图片加载成功,那么界面上会显示图片,如果由于一些原因导致图片加载失败,会出现这样的图标。
全栈程序员站长
2022/08/23
2.4K0
图片加载失败的正确处理[通俗易懂]
Flutter SDK变更后的正确处理方式
网上有些方法用了未必有效。比如有说直接修改项目中的.packages文件,改完后可能还会有问题。
IT晴天
2020/02/18
2.3K0
Node中POST请求的正确处理方式
Node的 http 模块只对HTTP报文的头部进行了解析,然后触发 request 事件。如果请求中还带有内容部分(如 POST 请求,它具有报头和内容),内容部分需要用户自行接收和解析。
Qiang
2019/06/20
2K0
Node中POST请求的正确处理方式
在 JavaScript 正确处理变量
变量无处不在。即便我们写一个小函数或一个小工具,也要声明、赋值和读取变量。增强对变量的重视,可以提高代码的可读性和可维护性。
疯狂的技术宅
2020/12/31
6110
PowerShell系列(二):PowerShell和Python之间的差异介绍
今天给大家聊聊PowerShell和Python之间有哪些共同之处,各自有哪些优势,希望对运维的朋友了解两种语言能提供一些有用的信息。
小明互联网技术分享社区
2023/09/20
6270
PowerShell系列(二):PowerShell和Python之间的差异介绍
前端正确处理“文字溢出”的思路
然而当用户缩放浏览器显示的尺寸时,我们需要做到省略中间的文字,选择保留后缀这种方案。如下图所示:
@超人
2023/05/12
7630
前端正确处理“文字溢出”的思路
PowerShell的开源实现
从Mono老大的blog上Open Source Powershell Implementation 看到了一个PowerShell的开源实现的项目Pash。目前可以运行的平台包括Linux, Mac
张善友
2018/01/31
6900
PowerShell的开源实现
正确处理 CSV 文件的引号和逗号
CSV(Comma-Separated Values,逗号分割值),就是用纯文本的形式存储表格数据,最大的特点就是方便。
仁扬
2023/07/02
1.2K0
Powershell中的变量
在我们的迷你系列“Variables in Shells”中,了解如何在PowerShell中处理局部变量。
QRosie
2019/11/24
3K0
Powershell中的变量
PowerShell系列(三):PowerShell发展历程梳理
Windows Server 2003 SP1/SP2,Windows Server2003 R2, Windows XP SP2, and Windows Vista
小明互联网技术分享社区
2023/09/21
4610
PowerShell系列(三):PowerShell发展历程梳理
PowerShell revshells
PowerShell revshells 在提示符和工作目录上方显示 username@computer 有部分 AMSI-bypass,使一些事情更容易 TCP 和 UDP Windows Powershell 和核心 Powershell 上传和下载文件的功能。(使用sc0tfree的 Updog) ngrok 支持 ngrok 可以从脚本内部启动/停止 有效载荷将与 ngrok 地址一起生成 更新支持 您可以从脚本内部启动/停止 Updog PowerShell revshells 嵌入了上传/下
Khan安全团队
2023/02/23
1.4K0
PowerShell revshells
Redis的管道Pipeline
文章目录 1. Redis的管道(Pipeline) 1.1. 为什么使用管道 1.2. 客户端使用管道执行命令 1.2.1. API Redis的管道(Pipeline) 为什么使用管道 其中redis的执行一条命令可以分为四个步骤 发送命令 命令排队 命令执行 返回结果 其中1-4之间所需要的时间称为往返时间(RTT) Redis提供了批量操作命令(例如mget、mset等),有效地节约RTT。但 大部分命令是不支持批量操作的,例如要执行n次hgetall命令,并没有 mhgetall命令存在,需要
爱撒谎的男孩
2019/12/31
1.6K0
Shell中的管道
管道 管道,从一头进去,从另一头出来。 在Shell中,管道将一个程序的标准输出作为另一个程序的标准输入,就像用一根管子将一个程序的输出连接到另一个程序的输入一样。 管道的符号是|,下面的程序将cat的标准输出作为less的标准输入,以实现翻页的功能: $ cat source.list.bk | less tee 有时候我们想要同时将程序的输出显示在屏幕上(或进入管道)和保存到文件中,这个时候可以使用tee。 tee程序的输出和它的输入一样,但是会将输入内容额外的保存到文件中: $ cat hello.t
mwangblog
2018/07/04
9100
Dart 编码规范:正确处理 null
在 Dart 编码中,我们会经常遇到需要处理 null 的场合。Dart 2.12版本引入 null safety 以后,对 null 的处理有了新的规范。关于 null safety 特性,可以阅读本人的另一篇文章:升级踩坑,聊聊 Dart 的 null safety,本篇介绍如何正确处理 null。
玖柒的小窝
2021/11/21
1.3K0
Dart 编码规范:正确处理 null
Windows PowerShell:(
  Cmdlets 用于服务器的管理方面主要体现在4个方面:服务、日志、进程、服务器管理器。
py3study
2020/01/07
3.1K0

相似问题

使用knex和无服务器脱机时连接获取的问题

16

onActivityResult resultCode在使用照相机时总是0

10

在lambda上,无服务器函数总是超时

22

使用无服务器在lambda上部署代码失败

20

LibGit2Sharp无响应性

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文