﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-淋雨的博客-随笔分类-C++</title><link>http://www.cppblog.com/inkcpp/category/18624.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 08 Mar 2012 05:37:14 GMT</lastBuildDate><pubDate>Thu, 08 Mar 2012 05:37:14 GMT</pubDate><ttl>60</ttl><item><title>#Pragma 预编译指令</title><link>http://www.cppblog.com/inkcpp/archive/2012/02/21/166110.html</link><dc:creator>淋雨的感觉</dc:creator><author>淋雨的感觉</author><pubDate>Tue, 21 Feb 2012 02:07:00 GMT</pubDate><guid>http://www.cppblog.com/inkcpp/archive/2012/02/21/166110.html</guid><wfw:comment>http://www.cppblog.com/inkcpp/comments/166110.html</wfw:comment><comments>http://www.cppblog.com/inkcpp/archive/2012/02/21/166110.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/inkcpp/comments/commentRss/166110.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/inkcpp/services/trackbacks/166110.html</trackback:ping><description><![CDATA[<span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　Pragma是什么?</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　翻译:Rogers后附英文原文。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　(译者注:</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　一句话，pragma就是为了让编译器编译出的C或C++程序与机器硬件和操作系统保持完全兼容而定义的宏扩展，</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　#pragma是和特定编译器相关的。)</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　两部分:</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　1.Pragma说明;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　2.Pragma的语法。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　一、Pragma说明(Directives)</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　C和C++程序的每次执行都支持其所在的主机或操作系统所具有的一些独特的特点。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　一些程序,例如，需要精确控制数据存放的内存区域或控制某个函数接收的参数。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　#pragma指示为编译器提供了一种在不同机器和操作系统上编译以保持C和C++完全兼容的方法。?</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　Pragmas是由机器和相关的操作系统定义的，通常对每个编译器来说是不同的。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　二、语法(Syntax)</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　#pragma token-string(特征字符串)</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　特征字符串是一连串的字符，就是要给一个特定编译器提供说明和编译意见。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　符号(#)必须是pragma所在那一行的第一个非空格字符;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　#号和pragma之间可以有任意个空格符。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　在#pragma之后，是可以被编译器解析的预处理特征字符。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　一般认为,#pragma属于宏扩展。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　如果编译器发现不认识的pragma,会提出警告，但继续编译下去。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　Pragmas可以用在条件声明上，提供最新的功能性的预处理程序，或者提供给编译器定义执行的信息。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　C和C++编译器认可如下pragmas:</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　alloc_text</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　comment //注释</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　init_seg1&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　optimize //最优化</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　auto_inline&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　component //组成部件</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　inline_depth&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　pack //包</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　bss_seg&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　data_seg&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　inline_recursion //内嵌递归</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　pointers_to_members1&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　check_stack&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　function&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　intrinsic //内在的</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　setlocale&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　code_seg&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　hdrstop&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　message&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　vtordisp1&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　const_seg&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　include_alias&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　once&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　warning&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　这是MSDN的一篇文章，原作者曾经想使用&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　#pragma pack(1) // 用GCC在MIPS平台上将结构体成员结合到一块连续的内存块，但是没有做到。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　在linux环境下使用intel-based GCC,#pragma pack(1)可以工作。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　建议参考具体编译器的文档，在里面应该有pragma的说明。</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　---------------------------------------原文-------------------------------------------</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　Pragma Directives</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　Each implementation of C and C++ supports some features unique to its host machine or operating system.</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　Some programs, for instance, need to exercise precise control over the memory areas where data is placed or&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　to control the way certain functions receive parameters.&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　The #pragma directives offer a way for each compiler</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　to offer machine- and operating-system-specific features&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　while retaining overall compatibility with the C and C++&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　languages. Pragmas are machine- or operating-system-specific by definition,&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　and are usually different for every compiler.</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　Syntax</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　#pragma token-string</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　The token-string is a series of characters that gives a specific compiler instruction and arguments,</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　if any.</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　The number sign (#) must be the first non-white-space character on the line containing the pragma;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　white-space characters can separate the number sign and the word pragma.&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　Following #pragma, write any text that the translator can parse as preprocessing tokens.</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　The argument to #pragma is subject to macro expansion.</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　If the compiler finds a pragma it does not recognize, it issues a warning, but compilation continues.</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　Pragmas can be used in conditional statements, to provide new preprocessor functionality,&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　or to provide implementation-defined information to the compiler.&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　The C and C++ compilers recognize the following pragmas:</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　alloc_text comment init_seg1 optimize&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　auto_inline component inline_depth pack&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　bss_seg data_seg inline_recursion pointers_to_members1&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　check_stack function intrinsic setlocale&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　code_seg hdrstop message vtordisp1&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　const_seg include_alias once warning&nbsp;</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　This is an article from MSDN, I ever wanted to use</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　#pragma pack(1) //which can combine structure members to one continuous memory block</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　on MIPS platform using GCC, but it doesn't work.</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　See the compiler's document, it should be illustrated there.</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　</span><br style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; " /><span style="color: #494949; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px; background-color: #ffffff; ">　　Under linux env using intel-based GCC, it works.</span>&nbsp;<br />来源：<a href="http://blog.tianya.cn/blogger/post_read.asp?BlogID=396564&amp;PostID=13455584">http://blog.tianya.cn/blogger/post_read.asp?BlogID=396564&amp;PostID=13455584</a><img src ="http://www.cppblog.com/inkcpp/aggbug/166110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/inkcpp/" target="_blank">淋雨的感觉</a> 2012-02-21 10:07 <a href="http://www.cppblog.com/inkcpp/archive/2012/02/21/166110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>