c++预编译命令.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c预编译命令

在所有的预处理指令中,#Pragma ? 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 ? ? ? ? 其格式一般为: ? #Pragma ? Para ? ? 其中Para ? 为参数,下面来看一些常用的参数。 ? ? ? ? (1)message ? 参数。 ? Message ? 参数是我最喜欢的一个参数,它能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: ? ? #Pragma ? message(“消息文本”) ? ? 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。 ? ? 当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有正确的设置这些宏,此时我们可以用这条指令在编译的时候就进行检查。 ? ? 假设我们希望判断自己有没有在源代码的什么地方定义了_X86这个宏可以用下面的方法 ? ? #ifdef ? _X86 ? ? #Pragma ? message(“_X86 ? macro ? activated!”) ? ? #endif ? ? 当我们定义了_X86这个宏以后,应用程序在编译时就会在编译输出窗口里显示“_ X86 ? macro ? activated!”。我们就不会因为不记得自己定义的一些特定的宏而抓耳挠腮了 。 ? ? ? ? (2)另一个使用得比较多的pragma参数是code_seg。格式如: ? ? #pragma ? code_seg( ? [section-name[,section-class] ? ] ? ) ? ? 它能够设置程序中函数代码存放的代码段,当我们开发驱动程序的时候就会使用到它。 ? ? ? ? (3)#pragma ? once ? (比较常用) ? ? 只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,这条指令实际上在VC6中就已经有了,但是考虑到兼容性并没有太多的使用它。 ? ? ? ? (4)#pragma ? hdrstop表示预编译头文件到此为止,后面的头文件不进行预编译。BCB可以预编译头文件以加快链接的速度,但如果所有头文件都进行预编译又可能占太多磁盘空间,所以使用这个选项排除一些头文件。 ? ? 有时单元之间有依赖关系,比如单元A依赖单元B,所以单元B要先于单元A编译。你可以用#pragma ? startup指定编译优先级,如果使用了#pragma ? package(smart_init) ? ,BCB就会根据优先级的大小先后编译。 ? ? ? ? (5)#pragma ? resource ? *.dfm表示把*.dfm文件中的资源加入工程。*.dfm中包括窗体外观的定义。 ? ? ? ? (6)#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号警告信息作为一个错误。 ? ? 同时这个pragma ? warning ? 也支持如下格式: ? ? #pragma ? warning( ? push ? [ ? ,n ? ] ? ) ? ? #pragma ? warning( ? pop ? ) ? ? 这里n代表一个警告等级(1---4)。 ? ? #pragma ? warning( ? push ? )保存所有警告信息的现有的警告状态。 ? ? #pragma ? warning( ? push, ? n)保存所有警告信息的现有的警告状态,并且把全局警告 ? ? 等级设定为n。 ? ? #pragma ? warning( ? pop ? )向栈中弹出最后一个警告信息,在入栈和出栈之间所作的 ? ? 一切改动取消。例如: ? ? #pragma ? warning( ? push ? ) ? ? #pragma ? warning( ? disable ? : ? 4705 ? ) ?

文档评论(0)

bm5044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档