预处理指令pragma常见用法集锦(#pragma once、#pragma comment和#pragma warning)

#pragma once:
这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,避免文件被重复包含。

*********************************** 例如 *****************************************
头文件中的
#if _MSC_VER > 1000 //MFC版本
#pragma once //编译一次
#endif // _MSC_VER > 1000
是什么意思?

以上意思就是:如果MFC的版本大于4。2的话,本文件就只编译一次。
************************************************************************************

#pragma comment:
该指令将一个注释记录放入一个对象文件或可执行文件中。

该指令的格式为:
        #pragma comment( "comment-type" [, commentstring] )

comment-type(注释类型):可以指定为以下五种预定义的标识符的其中一种。
1、compiler
    将编译器的版本号和名称放入目标文件中,本条注释记录将被编译器忽略。
    如果你为该记录类型提供了commentstring参数,编译器将会产生一个警告。
    例如:#pragma comment( compiler )
2、exestr
   将commentstring参数放入目标文件中,在链接的时候这个字符串将被放入到可执行文件中。
   当操作系统加载可执行文件的时候,该参数字符串不会被加载到内存中.但是,该字符串可以被dumpbin之类的程序查找出并打印出来,你可以用这个标识符将版本号码之类的信息嵌入到可执行文件中!
3、lib
   这是一个非常常用的关键字,用来将一个库文件链接到目标文件中。
   例如: #pragma comment(lib, "user32.lib")
            该指令用来将user32.lib库文件加入到本工程中。

4、linker
   将一个链接选项放入目标文件中,你可以使用这个指令来代替由命令行传入的或者在开发环境中设置的链接选项。
你可以指定/include选项来强制包含某个对象。
   #pragma comment(linker,"/include:__mySymbol")

你可以在程序中设置下列连接选项:
/DEFAULTLIB
/EXPORT
/INCLUDE
/MANIFESTDEPENDENCY
/MERGE
/SECTION
/NODEFAULTLIB
  
又如:
#pragma comment(linker,"/nodefaultlib:LIBC.lib")
该与指令是用来忽略特定库的,解决诸如LINK : fatal error LNK1104: 无法打开文件“LIBC.lib”的编译错误。

#pragma warning( disable : 4507 34; once : 4385; error : 164 )
等价于:
#pragma warning(disable:4507 34) // 不显示4507和34号警告信息
#pragma warning(once:4385)        // 4385号警告信息仅报告一次
#pragma warning(error:164)          // 把164号警告信息作为一个错误。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

var类型推断关键字

目录var 类型推断介绍var的一个例子:编程遵循规则var 类型推断介绍 使用var定义变量时,用var关键字替代实际类型。编译器可以根据变量的初始化值自行“推断”变量的类型。 例如: var A 0; 等价于 int A 0;var的一个…

《程序员修炼之道》笔记(九)

*续 第八章 注重实效的项目 1. 无处不在的自动化 文明通过增加我们不假思索就能完成的重要操作的数目而取得进步。 无论是构建和发布流程、是书面的代码复查工作、还是其他任何在项目中反复出现的任务,都必须是自动的。人工流程不能保证一致性,也无法保证…

flutter image boxfit

直接从官网文档中复制记录,方便以后查看contain → const BoxFitAs large as possible while still containing the source entirely within the target box.const BoxFit(1)cover → const BoxFitAs small as possible while still covering the entire target box…

rvm RuvyGem Cocoapods brew

开始的时候,我仅想升级一下cocoapods的版本,因为我xcode报三十多个相似警告,说第三方找不到相应文件,我看cocoapods版本有1.0.1,而我使用的依旧是1.0.0的老版本。当我升级cocoapods时,需要使用gem来更新coc…

Linux系统目录说明

以前稍稍接触过Linux系统,现今,因工作需要要更进一步学习Linux系统的相关程序开发。因此对于目录(路径)的了解及很重要了。/bin:是Binary的缩写,这里保存了一百多个Linux下常用的命令、工具;这是…

const常量用法

目录定义语法特点优点定义 常量就是在使用过程中不会变化的量叫做常量。 语法 const int A 100;//常量不允许改变特点 常量必须在声明时初始化;常量的值必须在编译时就定义好;常量总是隐式静态的; 优点 易读,易于程序修改&…

斯坦福大学机器学习——高斯判别分析

转自 http://blog.csdn.net/linkin1005/article/details/39054023 同朴素贝叶斯一样,高斯判别分析(Gaussian discriminant analysismodel, GDA)也是一种生成学习算法,在该模型中,我们假设y给定的情况下,x服…

嘉实多RO150合成齿轮油

Optigear ™合成 RO 是一个特殊的高性能,长期多级油特别为齿轮 轨道交通,机械工程应用中,一个极端的气候条件和长期使用。 “ Microflux 跨的添加剂组合是免费的固体润滑剂,甚至适应迅速变化的环境和积极…

线程队列-queue

使用队列的目的:解耦,使程序之间实现松耦合;提高处理效率FIFO 先进先出,first in first outLIFO 后入先出,last in first out生产者消费者模型使用方式1 import queue 2 3 #创建队列对象,设置队列大小ma…

MapGIS转Shp文件的单位问题

MapGIS转Shp文件的单位问题 原文:MapGIS转Shp文件的单位问题在MapGIS浏览查看一下数据,各种不习惯;用mapgis自带的转shp功能,属性表会出错;利用名为map2shp的试用版软件可将mapgis格式的数据较为良好转成shp格式。但经常会遇到一个…

halcon2D Metrology测量算子,卡尺测量算子,持续更新

目录2D Metrology1. add_metrology_object_circle_measure2. add_metrology_object_ellipse_measure3. add_metrology_object_generic4. add_metrology_object_line_measure5. add_metrology_object_rectangle2_measure6. align_metrology_model7. apply_metrology_model8. cle…

项目经理的职责

项目经理的职责: 1、项目范围的定义 2、项目计划的制定、分解、分配、协调、汇报 3、项目质量控制 4、项目需求变更配置 工作职责: 1、负责产品的研发任务的立项计划及实施; 2、负责收集统计各项资料数据,完成自主研发部…

显示/隐藏Mac系统中所有的隐藏文件

显示: 在终端输入:defaults write com.apple.finder AppleShowAllFiles YES隐藏: 在终端输入:defaults write com.apple.finder AppleShowAllFiles NO然后重启Finder即可(先点击左上角的苹果图标,再选强制退出,然后选中Finder,点击…

机械零点、MAM 文件 、 EMT标定原理

 机械零点、MAM 文件、EMT标定原理。 可调节的机械零点,不需要MAM文件,使之成为90度。 不可调节的机械零点,需要MAM文件修正,使之成为90度。 带负载的偏移补偿、带负载的偏移补偿mastering。做过带负…

智慧城市的互联网大脑架构图:大社交网络与智慧城市结合是关键

从本质上讲智慧地球和智慧城市还是互联网发展到一定程度,向城市建设蔓延和深入的结果。因此建设智慧城市就不能不忽略互联网的发展趋势和进化规律。 而越来越多的迹象表明“互联网正在向着与人类大脑高度相似的方向进化,它将具备自己的视觉、听觉、触觉、…

halcon1D测量算子,持续更新

目录1D Measuring 1D测量1.close_measure2. deserialize_measure3.fuzzy_measure_pairing4.fuzzy_measure_pairs5.fuzzy_measure_pos6.gen_measure_arc7.gen_measure_rectangle28.measure_pairs9.measure_pos10.measure_projection11.measure_thresh12. read_measure13.reset_f…

20145227鄢曼君《网络对抗》Web安全基础实践

20145227鄢曼君《网络对抗》Web安全基础实践 实验后回答问题 1.SQL注入攻击原理,如何防御? SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要…

[转]Xvid参数详解

众所周知,Mencoder以其极高的压缩速率和不错的画质赢得了很多朋友的认同! 原来用Mencoder压缩Xvid的AVI都是使用Xvid编码器的默认设置,现在我来给大家冲冲电,讲解一下怎样使用Mencoder命令行高级参数制作Xvid编码格式AVI影片。经…

常用的Meta标签写法和作用

页面关键词  <meta name"keywords" content"your tags" />  页面描述  <meta name"description" content"150 words" />  搜索引擎索引方式  <meta name"robots" content"index,follow"…