C++ #pragma预处理命令

C++ #pragma预处理命令

ID:39548689

大小:50.00 KB

页数:10页

时间:2019-07-06

C++ #pragma预处理命令_第1页
C++ #pragma预处理命令_第2页
C++ #pragma预处理命令_第3页
C++ #pragma预处理命令_第4页
C++ #pragma预处理命令_第5页
资源描述:

《C++ #pragma预处理命令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#pragma预处理命令#pragma可以说是C++中最复杂的预处理指令了,下面是最常用的几个#pragma指令:#pragmacomment(lib,"XXX.lib")表示链接XXX.lib这个库,和在工程设置里写上XXX.lib的效果一样。#pragmacomment(linker,"/ENTRY:main_function")表示指定链接器选项/ENTRY:main_function#pragmaonce表示这个文件只被包含一次#pragmawarning(disable:4705)表示屏蔽警告4

2、705     C和C++程序的每次执行都支持其所在的主机或操作系统所具有的一些独特的特点。例如,有些程序需要精确控制数据存放的内存区域或控制某个函数接收的参数。#pragma为编译器提供了一种在不同机器和操作系统上编译以保持C和C++完全兼容的方法。#pragma是由机器和相关的操作系统定义的,通常对每个编译器来说是不同的。如果编译器遇到不认识的pragma指令,将给出警告信息,然后继续编译。MicrosoftCandC++的编译器可识别以下指令:alloc_text,auto_inline,bss_s

3、eg,check_stack,code_seg,comment,component,conform,const_seg,data_seg,deprecated,fenv_access,float_control,fp_contract,function,hdrstop,include_alias,init_seg,inline_depth,inline_recursion,intrinsic,make_public,managed,message,omp,once,optimize,pack,pointe

4、rs_to_members,pop_macro,push_macro,region,endregion,runtime_checks,section,setlocale,strict_gs_check,unmanaged,vtordisp,warning。其中conform,init_seg,pointers_to_members,vtordisp仅被C++编译器支持。      以下是常用的pragma指令的详细解释。1.#pragmaonce。保证所在文件只会被包含一次,它是基于磁盘文件的,而#ifn

5、def则是基于宏的。2.#pragmawarning。允许有选择性的修改编译器的警告消息的行为。有如下用法:#pragmawarning(disable:450734;once:4385;error:164)价于:#pragmawarning(disable:450734)//不显示4507和34号警告信息#pragmawarning(once:4385)   //4385号警告信息仅报告一次#pragmawarning(error:164)   //把164号警告信息作为一个错误#pragmawarni

6、ng(default:176) //重置编译器的176号警告行为到默认状态同时这个pragmawarning也支持如下格式,其中n代表一个警告等级(1---4):             #pragmawarning(push)  //保存所有警告信息的现有的警告状态#pragmawarning(push,n)//保存所有警告信息的现有的警告状态,并设置全局报警级别为n#pragmawarning(pop)   //例如: #pragmawarning(push)   #pragmawarning(dis

7、able:4705)#pragmawarning(disable:4706)#pragmawarning(disable:4707)#pragmawarning(pop)          在这段代码后,恢复所有的警告信息(包括4705,4706和4707)。3.#pragmahdrstop。表示预编译头文件到此为止,后面的头文件不进行预编译。BCB可以预编译头文件以加快链接的速度,但如果所有头文件都进行预编译又可能占太多磁盘空间,所以使用这个选项排除一些头文件。4.#pragmamessage。在标准输

8、出设备中输出指定文本信息而不结束程序运行。用法如下:#pragmamessage("消息文本")。当编译器遇到这条指令时就在编译输出窗口中将“消息文本”打印出来。5.#pragmadata_seg。一般用于DLL中,它能够设置程序中的初始化变量在obj文件中所在的数据段。如果未指定参数,初始化变量将放置在默认数据段.data中,有如下用法:#pragmadata_seg("Shared")//定义了数据段"Shared",其中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。