- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PRAGMA命令详解(三)
15 inline_recursion
#pragma inline_recursion( [{on | off}] )
控制直接或者相互间的递归函数调用式的嵌入扩展。用这个编译指示控制用inline,__inline标记的或在/Ob2选项下能自动嵌入的嵌入函数。使用这个编译指示需要设置编译程序选项/Ob为1或者2。默认的inline_recursion状态是off。这个编译指示在出现该编译指示之后第一个函数调用起作用,并不影响函数的定义。
inline_recursion编译指示控制如何扩展递归函数。如果inline_recursion是off,并且如果一个嵌入函数调用了它自己(直接的或者间接的),函数将仅仅扩展一次。如果inline_recursion是on,函数将扩展多次直到达到inline_depth的值或者容量限制。
16 intrinsic
#pragma intrinsic( function1 [, function2, ...] )
指定对在编译指示参数表中函数调用是内含的。编译程序像嵌入代码一样生成内含函数,而不是函数调用。下面列出了具有内含形式的库函数。一旦遇到intrinsic编译指示,它从第一个包含指定内含函数的函数定义开始起作用。作用持续到源文件尾部或者出现包含相同内含函数的function编译指示。intrinsic编译指示只能用在函数定义外——在全局层次。
下列函数具有内含形式:
_disable _enable _inp _inpw _lrotl _lrotr _outp _outpw _rotl _rotr _strset abs fabs labs memcmp memcpy memset strcat strcmp strcpy strlen ? ? ? 使用内含函数的程序更快,因为它们没有函数调用的额外代价,然而因为有附加的代码生成,可能比较大。
注意,_alloca和setjmp函数总是内含的,这个行为不受intrinsic编译指示影响。
下列浮点函数没有内含形式。然而它们具有直接将参数通过浮点芯片传送而不是推入程序堆栈的版本。
acos asin cosh fmod pow sinh tanh ? ? ? ? ? 当你同时指定/Oi和/Og编译程序选项(或者任何包含/Og,/Ox,/O1和/O2的选项)时下列浮点函数具有真正的内含形式。
atan exp log10 sqrt atan2 log sin tan cos?????? ? ? ? 你可以用编译程序选项/Op或/Za来覆盖真内含浮点选项的生成。在这种情况下,函数会像一般库函数一样被生成,同时直接将参数通过浮点芯片传送而不是推入程序堆栈。
17 message
#pragma message( messagestring )
不中断编译,发送一个字符串文字量到标准输出。message编译指示的典型运用是在编译时显示信息。
下面的代码段用message编译指示在编译过程中显示一条信息:
#if _M_IX86 == 500
#pragma message( Pentium processor build )
#endif
messagestring参数可以是一个能够扩展成字符串文字量的宏,并且你能够用字符串文字量和宏的任何组合来构造。例如,下面的语句显示被编译文件的文件名和文件最后一次修改的日期和时间。
#pragma message( Compiling __FILE__ )
#pragma message( Last modified on __TIMESTAMP__ )
18 once
#pragma once
指定在创建过程中该编译指示所在的文件仅仅被编译程序包含(打开)一次。该编译指示的一种常见用法如下:
//header.h
#pragma once
// Your C or C++ code would follow:
19 optimize
仅在专业版和企业版中存在
#pragma optimize( [optimization-list], {on | off} )
代码优化仅有Visual C++专业版和企业版支持。详见Visual C++ Edition。
指定在函数层次执行的优化。optimize编译选项必须在函数外出现,并且在该编译指示出现以后的第一个函数定义开始起作用。on和off参数打开或关闭在optimization-list指定的选项。
optimization-list能够是0或更多个在表2.2中给出的参数:
表 2.2?? optimize编译指示的参数
参数 优化类型 a 假定没有别名。 g 允许全局优化。 p 增强浮点一致性。
您可能关注的文档
最近下载
- 地史学教学课件-地史学9.ppt VIP
- 浅析橡胶坝工程安全的影响因素及防治对策.doc VIP
- 全国基层退役军人服务中心(站)工作人员职业技能竞赛考试题库-上(单选、多选题汇总).docx VIP
- 2025年浙江丽水正好电力投资集团公司招聘笔试参考题库含答案解析.pdf
- 暨南大学研究生英语读写译参考答案和参考译文.docx
- 民办学校合作办学协议书范本.doc VIP
- 人教五四 六年级 下册 语文 第三单元《文言文二则 第二课时》课件.pptx VIP
- 《大学体育与健康》 课件 第三章 健美操.pptx
- 2024乳腺癌诊疗指南2024年版 .pdf VIP
- 重庆市工伤职工停工留薪期分类目录.pdf
文档评论(0)