【c/c++】#pragma once 与 #ifndef 的区别解析
原文地址:http://blog.csdn.net/hkx1n/article/details/4313303
作用:为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。
在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。
方式一:
#ifndef __SOMEFILE_H__
#define __SOMEFILE_H__
... ... // 声明、定义语句
#endif
方式二:
... ... // 声明、定义语句
#ifndef的方式受C/C++语言标准支持。它不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件(或者代码片段)不会被不小心同时包含。
当然,缺点就是如果不同头文件中的宏名不小心“撞车”,可能就会导致你看到头文件明明存在,编译器却硬说找不到声明的状况——这种情况有时非常让人抓狂。
由于编译器每次都需要打开头文件才能判定是否有重复定义,因此在编译大型项目时,ifndef会使得编译时间相对较长,因此一些编译器逐渐开始支持#pragma once的方式。
#pragma once一般由编译器提供保证:同一个文件不会被包含多次。注意这里所说的“同一个文件”是指物理上的一个文件,而不是指内容相同的两个文件。你无法对一个头文件中的一段代码作pragma once声明,而只能针对文件。
其好处是,你不必再费劲想个宏名了,当然也就不会出现宏名碰撞引发的奇怪问题。大型项目的编译速度也因此提高了一些。
对应的缺点就是如果某个头文件有多份拷贝,本方法不能保证他们不被重复包含。当然,相比宏名碰撞引发的“找不到声明”的问题,这种重复包含很容易被发现并修正。
#pragma once方式产生于#ifndef之后,因此很多人可能甚至没有听说过。目前看来#ifndef更受到推崇。因为#ifndef受C/C++语言标准的支持,不受编译器的任何限制;而#pragma once方式却不受一些较老版本的编译器支持,一些支持了的编译器又打算去掉它,所以它的兼容性可能不够好。一般而言,当程序员听到这样的话,都会选择#ifndef方式,为了努力使得自己的代码“存活”时间更久,通常宁愿降低一些编译性能,这是程序员的个性,当然这是题外话啦。
还看到一种用法是把两者放在一起的:
#pragma once#ifndef __SOMEFILE_H__
#define __SOMEFILE_H__
... ... // 声明、定义语句
#endif
看起来似乎是想兼有两者的优点。不过只要使用了#ifndef就会有宏名冲突的危险,也无法避免不支持#pragma once的编译器报错,所以混用两种方法似乎不能带来更多的好处,倒是会让一些不熟悉的人感到困惑。
选择哪种方式,应该在了解两种方式的情况下,视具体情况而定。只要有一个合理的约定来避开缺点,我认为哪种方式都是可以接受的。而这个已经不是标准或者编译器的责任了,应当由程序员自己或者小范围内的开发规范来搞定。
<div class="recommend-box"><div class="recommend-item-box type_blog clearfix" data-report-click="{"mod":"popu_387","dest":"https://blog.csdn.net/reasonyuanrobot/article/details/83858319","strategy":"BlogCommendFromMachineLearnPai2","index":"0"}">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/reasonyuanrobot/article/details/83858319" target="_blank" rel="noopener" title="关于#pragma once">
<h4 class="text-truncate oneline" style="width: 552px;">
关于<em>#pragma</em> on<em>c</em>e </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">11-08</span>
<span class="read-num hover-hide">
阅读数
2641</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/reasonyuanrobot/article/details/83858319" target="_blank" rel="noopener" title="关于#pragma once">
<span class="desc oneline"> #pragmaonce是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。 #pragmaonce是编译器相关的,有的编译器支持,有的编译器不...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" rel="noopener" href="https://blog.csdn.net/reasonyuanrobot">来自: <span class="blog_title"> reasonyuanrobot的博客</span></a>
</span>
</p>
</div>
</div>
#pragma once与 #ifndef的区别
02-24 阅读数 685
原文地址::http://www.cppblog.com/szhoftuncun/archive/2007/10/28/35356.html类似文章地址::http://www.cnblogs.com... 博文 来自: xqhrs232的专栏
#pragma once用法总结
08-27 阅读数 1万+
1.#pragmaonce这个宏有什么作用?为了避免同一个头文件被包含(include)多次,C/C++中有两种宏实现方式:一种是#ifndef方式;另一种是#pragmaonce方式。在能够支持这两... 博文 来自: fanyun的博客
<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_59" data-pid="59"><script type="text/javascript">
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div style="" id="' + s + '"></div>');
(window.slotbydup = window.slotbydup || []).push({
id: "u3491668",
container: s
});
})();
Visual C++ 6.0编译指示
10-19 阅读数 2013
DocumentSource:PragmaDirectives,PreprocessorReference,VisualC++ProgrammerGuide. 每种C和C++的实现支持对其宿主机或操作... 博文 来自: 一叶舟轻
#pragma once 是什么意思?
01-07 阅读数 222
和头文件中用#ifndef A_H #define A_H ...//Here is code. #endif效果类似. 包含pragmaonce语句的文件只会被编译一次。 表示在编译的时候, 这个文... 博文 来自: weixin_33859665的博客
#pragma是什么
09-17 阅读数 711
#pragmamark-....... 从技术角度来说,任何以#pragma开头的代码都是一条编译器指令。具体来讲,是一个特定于程序或特定于编译器的指令,它们不一定适用于其他编译器环境... 博文 来自: u013712343的博客
C++笔记——c++中#pragma的用法
10-02 阅读数 902
在所有的预处理指令中,#Pragma指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情... 博文 来自: diyun的博客
<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_60" data-pid="60"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1570421134063_337" id="QIHOO__WEB__SO__1570421134063_337" style="display:block;margin:0;padding:0;border:none;width:900px;height:84px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1570421134063_337-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1570421134063_337 singleImage clk" data-href="https://ssxd.mediav.com/s?type=2&r=20&mv_ref=blog.csdn.net&enup=CAABcVhjKAgAAihjWHEA&mvid=MTA1NzY4MTQ2MTQzMjE1MDcwMTAwMTk&bid=13a3aa83bbb0f42a&price=AAAAAF2auY4AAAAAAAPCk5DkH6BJd9D2DxyGfg==&finfo=DAABCAABAAAAZAgAAgAAAKYEAAM/QhWnSMKlbAAIAAIAAAADCgADJKlDruRRw5gIAAQAAAC2BgAGGt0GAAoAAAgADgAAADsKAA8AAAAAABGzQwA&ugi=FcTgigEVyNtrTBUCFUAVXhUAABXNm/L8AhaACBXIARaA/redxZLKBRwWxN3swYe31ImCARUAAAA&uai=FeTGlAIlAhUEFozDl+/HpZ2pSRXyCCWf0b0qJQAVGhQAHBa3xte54q7wnSoVAAAA&ubi=FeLnJBX0j78CFcaehBcVhrzjVxUGFRwW/oHH+hQWjMOs1tHroalJNAIWsOAQJQYV1YTSrA0VngEVACQUFuLnJAA&clickid=0&cpx=__OFFSET_X__&cpy=__OFFSET_Y__&cs=__EVENT_TIME_START__&ce=__EVENT_TIME_END__&adsw=__ADSPACE_W__&adsh=__ADSPACE_H__&ldtype=2&csign2=ELYW1NkCL3Z=&url=http%3A%2F%2Fbaidu.code.mytanwan.com%2Fhtmlcode%2F31331.html" data-clk="https://max-l.mediav.com/rtb?type=3&ver=1&v=CGQSEDEzYTNhYTgzYmJiMGY0MmEYsqOKASCisEUoAWIXMTA1NzY4MTQ2MTQzMjE1MDcwMTAwMTlwAA&k=o4ULvAAAAAA=&i=crTHYjgkyDZb&exp=BQBECQFEAgJECgBEEQBCEABDJQBD&x=__OFFSET_X__&y=__OFFSET_Y__&st=__EVENT_TIME_START__&et=__EVENT_TIME_END__&adw=__ADSPACE_W__&adh=__ADSPACE_H__&tc=&turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/galileo/301553-4bed552a42d15786a03698ba82bd1325.gif)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">别再玩假传奇了!这款传奇爆率9.8,你找到充值入口算我输!</info-div>
<info-div class="singleImage-desc">贪玩游戏 · 顶新</info-div>
</info-div>
c++中#pragma用法详解
03-02 阅读数 7728
参考:http://baike.baidu.com/item/%23pragma?fr=aladdinhttp://www.cnblogs.com/cchyao/archive/2010/09/25/... 博文 来自: 满城风絮
#pragma once和#ifndef的区别
09-12 阅读数 69
1)#ifndef的方式依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心“撞车”,可能就会导致... 博文 来自: f905699146的博客
<div class="recommend-item-box blog-expert-recommend-box" style="display: block;">
<div class="d-flex">
<div class="blog-expert-recommend">
<div class="blog-expert">
<div class="blog-expert-flexbox" data-report-view="{"mod":"popu_709","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{"mod":"popu_709","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><a href="https://blog.csdn.net/reasonyuanrobot" target="_blank"><img src="https://avatar.csdn.net/D/3/4/3_reasonyuanrobot.jpg" alt="_yuan_" title="_yuan_"></a><span data-report-click="{"mod":"popu_710","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><span class="blog-expert-button-follow btn-red-follow" data-name="reasonyuanrobot" data-nick="_yuan_">关注</span></span></div><div class="info"><span data-report-click="{"mod":"popu_709","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><a href="https://blog.csdn.net/reasonyuanrobot" target="_blank"><h5 class="oneline" title="_yuan_">_yuan_</h5></a></span> <p></p><p class="article-num" title="115篇文章"> 115篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{"mod":"popu_709","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><a href="https://blog.csdn.net/xqhrs232" target="_blank"><img src="https://avatar.csdn.net/B/4/8/3_xqhrs232.jpg" alt="xqhrs232" title="xqhrs232"></a><span data-report-click="{"mod":"popu_710","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><span class="blog-expert-button-follow btn-red-follow" data-name="xqhrs232" data-nick="xqhrs232">关注</span></span></div><div class="info"><span data-report-click="{"mod":"popu_709","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><a href="https://blog.csdn.net/xqhrs232" target="_blank"><h5 class="oneline" title="xqhrs232">xqhrs232</h5></a></span> <p></p><p class="article-num" title="2563篇文章"> 2563篇文章</p><p class="article-num" title="排名:121"> 排名:121</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{"mod":"popu_709","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><a href="https://blog.csdn.net/fanyun_01" target="_blank"><img src="https://avatar.csdn.net/9/F/8/3_fanyun_01.jpg" alt="老樊Lu码" title="老樊Lu码"></a><span data-report-click="{"mod":"popu_710","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><span class="blog-expert-button-follow btn-red-follow" data-name="fanyun_01" data-nick="老樊Lu码">关注</span></span></div><div class="info"><span data-report-click="{"mod":"popu_709","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><a href="https://blog.csdn.net/fanyun_01" target="_blank"><h5 class="oneline" title="老樊Lu码">老樊Lu码</h5></a></span> <p></p><p class="article-num" title="589篇文章"> 589篇文章</p><p class="article-num" title="排名:797"> 排名:797</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{"mod":"popu_709","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><a href="https://blog.csdn.net/fengbingchun" target="_blank"><img src="https://avatar.csdn.net/6/6/F/3_fengbingchun.jpg" alt="fengbingchun" title="fengbingchun"><svg class="icon" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#csdnc-blogexpert"></use></svg></a><span data-report-click="{"mod":"popu_710","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><span class="blog-expert-button-follow btn-red-follow" data-name="fengbingchun" data-nick="fengbingchun">关注</span></span></div><div class="info"><span data-report-click="{"mod":"popu_709","dest":"https://blog.csdn.net/lzm18064126848/article/details/50786271"}"><a href="https://blog.csdn.net/fengbingchun" target="_blank"><h5 class="oneline" title="fengbingchun">fengbingchun</h5></a></span> <p></p><p class="article-num" title="804篇文章"> 804篇文章</p><p class="article-num" title="排名:77"> 排名:77</p><p></p></div></div></div></div>
</div>
</div>
</div>
</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{"mod":"popu_387","dest":"https://blog.csdn.net/qq_34342154/article/details/78888174","strategy":"searchFromBaidu1","index":"5"}" data-report-click="{"mod":"popu_387","dest":"https://blog.csdn.net/qq_34342154/article/details/78888174","strategy":"searchFromBaidu1","index":"5"}" data-track-view="{"mod":"popu_387","dest":"https://blog.csdn.net/qq_34342154/article/details/78888174","strategy":"searchFromBaidu1","index":4,"extend1":"_"}" data-track-click="{"mod":"popu_387","dest":"https://blog.csdn.net/qq_34342154/article/details/78888174","strategy":"searchFromBaidu1","index":4,"extend1":"_"}" data-flg="true"> <a href="https://blog.csdn.net/qq_34342154/article/details/78888174" target="_blank"> <h4 class="text-truncate oneline" style="width: 633px;">...<em>#ifndef</em>,#endif,<em>#pragma</em> on<em>c</em>e ...) - 冰殇的博客 - <em>C</em>SDN博客...</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">6-25</span> </p> </div> </a> </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{"mod":"popu_387","dest":"https://blog.csdn.net/zlhy_/article/details/8192580","strategy":"searchFromBaidu1","index":"6"}" data-report-click="{"mod":"popu_387","dest":"https://blog.csdn.net/zlhy_/article/details/8192580","strategy":"searchFromBaidu1","index":"6"}" data-track-view="{"mod":"popu_387","dest":"https://blog.csdn.net/zlhy_/article/details/8192580","strategy":"searchFromBaidu1","index":5,"extend1":"_"}" data-track-click="{"mod":"popu_387","dest":"https://blog.csdn.net/zlhy_/article/details/8192580","strategy":"searchFromBaidu1","index":5,"extend1":"_"}" data-flg="true"> <a href="https://blog.csdn.net/zlhy_/article/details/8192580" target="_blank"> <h4 class="text-truncate oneline" style="width: 633px;"><em>#pragma</em> on<em>c</em>e与<em>#ifndef</em>两种防止头文件二次编译的<em>区别</em> -..._<em>C</em>SDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">10-4</span> </p> </div> </a> </div>
#pragma用法详解 && #pragma once 与 #ifndef
12-23 阅读数 2531
#pragma用法详解目录:(0) 前言(1)#pragmamessage能够在编译信息输出窗口中输出相应的信息(2)#pragmacode_seg能够设置程序中函数代码存放的代码段,开发驱动程序的... 博文 来自: you1314520me的专栏
C/C++中#pragma once及#ifndef的使用
08-14 阅读数 836
在C/C++中,为了避免文件多次编译,使头文件只被编译一次。有两种方式:一种是#pragmaonce;另一种则是#ifndef,那么这两者之间有什么区别呢?//方式一:#ifndef_SOMEFILE... 博文 来自: Pin_na
为什么#pragma once不在C++11标准里?
05-04 阅读数 1102
传统上我们都使用#ifndefMY_HEADER_HPP#defineMY_HEADER_HPP...#endif来防止重复引用了头文件.但是#pragmaonce感觉更好用一些,在linux下和wi... 博文 来自: 记事本
<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_61" data-pid="61"><div><iframe width="852" frameborder="0" height="66" scrolling="no" src="//pos.baidu.com/s?hei=66&wid=852&di=u3600846&ltu=https%3A%2F%2Fblog.csdn.net%2Flzm18064126848%2Farticle%2Fdetails%2F50786271&psi=1cd7b38bfad15850488efca9a2e2236e&dc=3&cec=UTF-8&exps=111000,110011&tlm=1570421134&cfv=0&cce=true&dri=0&pcs=1759x834&col=zh-CN&ps=2906x530&ant=0&cdo=-1&tcn=1570421134&dtm=HTML_POST&cmi=25&cja=false&ari=2&pis=-1x-1&cpl=21&ti=%E3%80%90c%2Fc%2B%2B%E3%80%91%23pragma%20once%20%E4%B8%8E%20%23ifndef%20%E7%9A%84%E5%8C%BA%E5%88%AB%E8%A7%A3%E6%9E%90&tpr=1570421134336&ltr=https%3A%2F%2Fblog.csdn.net%2Flzm18064126848%2Farticle%2Fdetails%2F50786271&par=1600x870&dis=0&ccd=24&dai=5&prot=2&drs=1&psr=1600x900&pss=1758x4834&chi=1"></iframe></div><script type="text/javascript" src="//rabc1.iteye.com/common/web/production/79m9.js?f=aszggcwz"></script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=61&a=622&c=0&k=&d=1&t=3&u=7f2917d15a70485e820fc57c4cce5c28"></div></div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{"mod":"popu_387","dest":"https://blog.csdn.net/zzy7075/article/details/8270609","strategy":"searchFromBaidu1","index":"9"}" data-report-click="{"mod":"popu_387","dest":"https://blog.csdn.net/zzy7075/article/details/8270609","strategy":"searchFromBaidu1","index":"9"}" data-track-view="{"mod":"popu_387","dest":"https://blog.csdn.net/zzy7075/article/details/8270609","strategy":"searchFromBaidu1","index":8,"extend1":"_"}" data-track-click="{"mod":"popu_387","dest":"https://blog.csdn.net/zzy7075/article/details/8270609","strategy":"searchFromBaidu1","index":8,"extend1":"_"}" data-flg="true"> <a href="https://blog.csdn.net/zzy7075/article/details/8270609" target="_blank"> <h4 class="text-truncate oneline" style="width: 633px;"><em>#pragma</em> on<em>c</em>e与 <em>#ifndef</em>的<em>区别</em> - zzy7075的专栏 - <em>C</em>SDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">10-2</span> </p> </div> </a> </div>
【C语言进阶深度学习记录】十九 #pragma使用与分析
02-23 阅读数 1100
文章目录1#pragma概念简介1.1#pragmamessage的用法1.2#pragmaonce的用法1.3#pragmapack的用法1.31struct占用的内存大小如何计算2总结在学习#pr... 博文 来自: 厚积薄发
#pragma once依然会重复包含
环境vc 描述: a.h #pragma once void f() { } b.h #pragma once #include"a.h" void f2(); b.cpp #include "b.h 论坛
#pragma comment (lib, "") 相对路径的问题
假设我的项目文件夹为c:\test 库文件夹为d:\lib,在库文件夹下有2个版本的库文件,分别存在2个文件夹下: d:\lib\ver1.0 d:\lib\ver2.0 我在项目设置里设置了“附加库 论坛
#pragma comment 的使用方法
03-30 阅读数 7万+
#pragmacomment(lib,"wpcap.lib")表示链接wpcap.lib这个库。和在工程设置里写上链入wpcap.lib的效果一样,不过这种方法写的程序别人在使用你的代码的时候就不用再... 博文 来自: liruda的专栏
<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_62" data-pid="62"><script type="text/javascript">
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div style="" id="' + s + '"></div>');
(window.slotbydup = window.slotbydup || []).push({
id: "u3600849",
container: s
});
})();
#pragma once与#ifndef条件编译区别
12-25 阅读数 584
原文链接:http://www.cnblogs.com/Braveliu/archive/2012/12/29/2838726.html【1】#pragmaonce这个宏有什么作用?为了避免同一个头文... 博文 来自: 半壶老酒
#Pragma Pack(n)与内存分配 pragma pack(push,1)与#pragma pack(1)的区别
08-24 阅读数 2万+
from:http://blog.csdn.net/mylinx/article/details/7007309 #pragmapack(n)解释一:每个特定平台上的编译器都有自己的默认“对齐系数”(... 博文 来自: Wanda && Aidem
C++11中的std::call_once
04-30 阅读数 5647
某些场景下,我们需要代码只被执行一次,比如单例类的初始化,考虑到多线程安全,需要进行加锁控制。C++11中提供的call_once可以很好的满足这种需求,使用又非常简单。头文件#include ... 博文 来自: 爱很遥远
<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_63" data-pid="63"><script type="text/javascript">
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div style="" id="' + s + '"></div>');
(window.slotbydup = window.slotbydup || []).push({
id: "u4221910",
container: s
});
})();
#pragma的详细用法
08-03 阅读数 2351
#pragma的详细用法转载自:https://www.cnblogs.com/azraelly/archive/2012/07/05/2577334.html每种C和C++的实现支持对其宿主机或操作... 博文 来自: 寂蝶难双,窃窃思羽.
#pragma once指的是什么??
向导生成的代码有一段 #if _MSC_VER>1000 #pragma once #endif//_MSC_VER>1000 #pragma once 是什么意思 有什么作用?? 论坛
#pragma once的使用
11-13 阅读数 446
一下内容摘抄自https://zh.wikipedia.org/wiki/Pragma_once在C和C++编程语言中,#pragmaonce是一个非标准但是被广泛支持的前置处理符号,会让所在的文件在... 博文 来自: yuer的博客
关于预处理命令#pragma SAVE #pragma REGPARMS ...... #pragma RESTORE
今天编程的时候看到如下内容,求大神帮我解释下红色部分怎么理解,或者指点我该去哪里找答案,谢谢 #pragma SAVE #pragma REGPARMS extern char _getkey (vo 论坛
<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_64" data-pid="64"><script type="text/javascript">
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div style="" id="' + s + '"></div>');
(window.slotbydup = window.slotbydup || []).push({
id: "u3600856",
container: s
});
})();
C语言学习笔记--#error 、 #line 和 #pragma 的使用
09-24 阅读数 34
1.#error的用法(1)#error是一种预编译器指示字,用于生成一个编译错误消息(2)用法:#errormessage//注意:message不需要用双引号包围(3)#error编译指示字用于自... 博文 来自: weixin_30706507的博客
#pragma hdrstop究竟什么意思
最近学C++ builder; 新建一个Application; 自动出现unit1.cpp unit1.cpp 的开始部分如下: #include <vcl.h> #pragma hdrstop # 论坛
#pragma 的几种用法
09-15 阅读数 7104
预编译指令#pragma有很多种用法,我敢保证很多程序员即使是一辈子也不会碰到其中的有些用法,是的,他们的确很偏僻,我们也没有用他们的需求。所以,本文不会面面俱到,只是把几种常用的几种汇总了一下。1.... 博文 来自: hziee_的专栏
#pragma once与#ifndef用法、区别、联系
03-13 阅读数 37
文章目录使用目的使用方法两者联系与区别使用目的为了避免同一个头文件被包含(include)多次,C/C++中有两种宏实现方式:#ifndef#pragmaonce示例代码如下:使用方法//方式一:#i... 博文 来自: weixin_41074793的博客
<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_65" data-pid="65"><script type="text/javascript">
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div style="" id="' + s + '"></div>');
(window.slotbydup = window.slotbydup || []).push({
id: "u4221803",
container: s
});
})();
#pragma once的作用
09-16 阅读数 1202
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上... 博文 来自: qq_42698384的博客
项目头文件中的宏重复定义#pragma once无效
求教各位大大,Vs 2015中VC++的控制台项目新建头文件会自动在首行加#pragma once以防止头文件重复包含,但是我的那个表达式求值的项目在生成时还是出现LNK 200重复定义,这可能是什么 论坛
如何防止头文件被重复包含或引用?
05-14 阅读数 1万+
一、#pragmaonce (比较常用)只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,这条指令实际上在VC6中就已经有了,但是考虑到兼容性并没有太多的使用。#pragmaonce是编译相... 博文 来自: Sharp_UP的博客
#pragma用法详解
02-12 阅读数 286
#pragma预处理命令#pragma可以说是C++中最复杂的预处理指令了,下面是最常用的几个#pragma指令:#pragmacomment(lib,“XXX.lib”)表示链接XXX.lib这个库... 博文 来自: 夜风的博客
<div class="recommend-item-box type_hot_word">
<div class="content clearfix" style="width: 712px;">
<div class="float-left">
<span>
<a href="https://www.csdn.net/gather_19/MtTaAg0sMi1kb3dubG9hZAO0O0OO0O0O.html" target="_blank">
c#siki第五季</a>
</span>
<span>
<a href="https://www.csdn.net/gather_11/MtTaAg0sNC1kb3dubG9hZAO0O0OO0O0O.html" target="_blank">
c#入门推荐书</a>
</span>
<span>
<a href="https://www.csdn.net/gather_11/MtTaAg0sNi1kb3dubG9hZAO0O0OO0O0O.html" target="_blank">
c# 解码海康数据流</a>
</span>
<span>
<a href="https://www.csdn.net/gather_12/MtTaAg0sNy1kb3dubG9hZAO0O0OO0O0O.html" target="_blank">
c# xml的遍历循环</a>
</span>
<span>
<a href="https://www.csdn.net/gather_17/MtTaAg0sOC1kb3dubG9hZAO0O0OO0O0O.html" target="_blank">
c# 取 查看源码没有的</a>
</span>
<span>
<a href="https://www.csdn.net/gather_15/MtTaAg0sOS1kb3dubG9hZAO0O0OO0O0O.html" target="_blank">
c#解决高并发 委托</a>
</span>
<span>
<a href="https://www.csdn.net/gather_15/MtTaAg1sMC1kb3dubG9hZAO0O0OO0O0O.html" target="_blank">
c#日期转化为字符串</a>
</span>
<span>
<a href="https://www.csdn.net/gather_14/MtTaAg1sMS1kb3dubG9hZAO0O0OO0O0O.html" target="_blank">
c# 显示问号</a>
</span>
<span>
<a href="https://www.csdn.net/gather_1f/MtTaAg1sMi1kb3dubG9hZAO0O0OO0O0O.html" target="_blank">
c# 字典对象池</a>
</span>
<span>
<a href="https://www.csdn.net/gather_1d/MtTaAg1sNC1kb3dubG9hZAO0O0OO0O0O.html" target="_blank">
c#5.0 安装程序</a>
</span>
</div>
</div>
</div>
<div class="recommend-loading-box">
<img src="https://csdnimg.cn/release/phoenix/images/feedLoading.gif">
</div>
<div class="recommend-end-box" style="display: block;">
<p class="text-center">没有更多推荐了,<a href="https://blog.csdn.net/" class="c-blue c-blue-hover c-blue-focus">返回首页</a></p>
</div>
</div>
<div class="template-box">
<span>©️2019 CSDN</span><span class="point"></span>
<span>皮肤主题: <a href="https://blog.csdn.net/weixin_40515248" target="_blank" style="color:#3399ea">skin3-template</a></span>
<span> 设计师:
CSDN官方博客 </span>
</div>
</main>