#pragma预处理指令讲解
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。
其格式一般为: #pragma Para。其中Para 为参数,下面来看一些常用的参数
message 参数
|
1
|
#pragmamessage(“消息文本”) |
|
1
2
3
|
#ifdef_X86#pragmamessage("_X86macroactivated!")#endif |
code_seg
|
1
|
#pragmacode_seg(["section-name"[,"section-class"]]) |
#pragma once
#pragma hdrstop
#pragma resource
#pragma warning
|
1
|
#pragmawarning(disable:450734;once:4385;error:164) |
|
1
2
3
|
#pragmawarning(disable:450734)//不显示4507和34号警告信息#pragmawarning(once:4385)//4385号警告信息仅报告一次#pragmawarning(error:164)//把164号警告信息作为一个错误。 |
|
1
2
|
#pragmawarning(push[,n])#pragmawarning(pop) |
|
1
2
3
|
#pragmawarning(push)保存所有警告信息的现有的警告状态。#pragmawarning(push,n)保存所有警告信息的现有的警告状态,并且把全局警告等级设定为n。#pragmawarning(pop)向栈中弹出最后一个警告信息, |
|
1
2
3
4
5
6
|
#pragmawarning(push)#pragmawarning(disable:4705)#pragmawarning(disable:4706)#pragmawarning(disable:4707)//.......#pragmawarning(pop) |
pragma comment
|
1
|
pragmacomment(...) |
|
1
2
|
#pragmaloop_opt(on)//激活#pragmaloop_opt(off)//终止 |
|
1
2
3
4
|
#pragmawarn—100//Turnoffthewarningmessageforwarning#100intinsert_record(REC*r){/*functionbody*/}#pragmawarn+100//Turnthewarningmessageforwarning#100backon |
|
1
2
3
4
5
6
|
#pragmapack(n)和#pragmapop()structsample{chara;doubleb;}; |
|
1
|
#pragmacomment(comment-type,["commentstring"]) |
|
1
|
/DEFAULTLIB,/EXPORT,/INCLUDE,/MANIFESTDEPENDENCY,/MERGE,/SECTION |
#pragma disable
#pragma data_seg
|
1
2
3
|
#pragmadata_seg("shareddata")HWNDsharedwnd=NULL;//共享数据#pragmadata_seg() |
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#pragmadata_seg("MyData")intg_Value;//Notethattheglobalisnotinitialized.#pragmadata_seg()//DLL提供两个接口函数:intGetValue(){returng_Value;}voidSetValue(intn){g_Value=n;} |
后启动两个进程A和B,A和B都调用了这个DLL,假如A调用了SetValue(5); B接着调用int m = GetValue();
那么m的值不一定是5,而是一个未定义的值。因为DLL中的全局数据对于每一个调用它的进程而言,是私有的,不能共享的。假如你对g_Value进行了初
始化,那么g_Value就一定会被放进MyData段中。换句话说,如果A调用了SetValue(5); B接着调用int m =
GetValue(); 那么m的值就一定是5,这就实现了跨进程之间的数据通信。
#pragma预处理指令讲解的更多相关文章
- #pragma 预处理指令详解
源地址:http://blog.csdn.net/jx_kingwei/article/details/367312 #pragma 预处理指令详解 在所有的预处理指令中, ...
- pragma comment的使用 pragma预处理指令详解
pragma comment的使用 pragma预处理指令详解 #pragma comment( comment-type [,"commentstring"] ) 该宏放置一 ...
- C++中的#pragma 预处理指令详解
源地址:http://blog.csdn.net/roger_77/article/details/660311 在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态 ...
- #pragma 预处理指令
Linux C 编程一站式学习 #pragma 预处理指示供编译器实现一些非标准的特性,C 标准没有规定 #pragma 后面应该写什么以及起什么作用,由编译器自己规定.有的编译器用 #pragma ...
- C++ #pragma 预处理指令
#pragma 预编译指令的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征 ...
- C/C++预处理指令
预处理指令 Preprocessor Directives define undef ifdef ifndef if endif else and elif line error include 预定 ...
- 预处理指令#pragma
#pragma介绍 #pragma是一个预处理指令,pragma的中文意思是『编译指示』.它不是Objective-C中独有的东西(貌似在C/C++中使用比较多),最开始的设计初衷是为了保证代码在不同 ...
- 预处理指令中#Pragma
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的 ...
- C#中的预处理指令详解
这篇文章主要介绍了C#中的预处理指令详解,本文讲解了#define 和 #undef.#if.#elif.#else和#endif.#warning和#error.#region和#endregion ...
随机推荐
- unity3d游戏无法部署到windows phone8手机上的解决方法
今天搞了个unity3d游戏,准备部署到自己的lumia 920上,数据线连接正常,操作正常,但是“build”以后,始终无法部署到手机上,也没有在选择的目录下生产任何相关文件.(你的系统必须是win ...
- Annotation注解与butterknife
注解分为三种,一般来讲我们使用的是运行时会加载及能够反射读取的注解类型, 其他编译器生效的类型和编译后放入类文件而运行期不能加载解析的对我们没啥用. 所以从普通理解上来看,注解要配合着反射用就好了. ...
- React-Native的基本控件属性方法
对React-Native的学习,从熟悉基本控件开始. View 属性方法 序号 名称 属性Or方法 类型 说明 1 accessibilityLabel 属性 string 2 accessib ...
- edmbed system----ecos
方案公司用的嵌入式系统用的就是开源的可配置系统, ecos 不过提到它,对方公司研究的并不透彻,它有一个可以配置的dhcp部分,也就是dns可以选择不分配给连接的客户端 不过对方公司不这个事,更不知道 ...
- android64位机子兼容32位.so库文件
http://blog.csdn.net/vhawk/article/details/49964475 猴子在调用高德地图的时候,遇到一个操作系统兼容问题,异常堆栈说是找不到so库文件,猴子就不懂了, ...
- 自定义TREEVIEW UL无限极嵌套
背景:做一个多级图片分类管理,当然要用到TreeView,在asp.net中已经提供了此服务器控件,参照效果,自定义一个简单可控性高的就当做练手吧! 效果:如图,小图标 折叠 展开 ico-tr ...
- 为什么要使用jQuery?
首先必须得了解为什么要学习JQuery,JQuery有哪些优点,当然是相对于传统的Javascript和DOM来说了,现在将JQuery的优势总结如下: 1,轻量级. JQuery非常小,压缩包只有1 ...
- js 书写规范
1.字符串用单引号 2.运算符号和变量之间用空格建立间距 3.书写插件时使用 'use strict'; 开头 4.方法如果是获取或者设置数据集合则使用动词如 getData,setData,eac ...
- javascript 中的 call
Javascript中call的使用 Javascript中call的使用自己感觉蛮纠结的,根据文档很好理解,其实很难确定你是否真正的理解. call 方法应用于:Function 对象调用一个对象的 ...
- maven中scope参数说明
官方说明文档地址https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Depen ...