__declspec关键字详细用法

来源:互联网 发布:通信网络 相关专业 编辑:程序博客网 时间:2024/04/30 22:31
<div id="article_details" class="details">    <div class="article_title">            <span class="ico ico_type_Repost"></span>    <h1>        <span class="link_title"><a href="/iamoyjj/article/details/4195635">        [收藏]__declspec关键字详细用法                    </a></span>    </h1></div>           <div class="article_manage clearfix">        <div class="article_l">            <span class="link_categories">            标签:              <a href="http://www.csdn.net/tag/deprecated" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">deprecated</a><a href="http://www.csdn.net/tag/%e7%bc%96%e8%af%91%e5%99%a8" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">编译器</a><a href="http://www.csdn.net/tag/microsoft" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">microsoft</a><a href="http://www.csdn.net/tag/thread" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">thread</a><a href="http://www.csdn.net/tag/struct" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">struct</a><a href="http://www.csdn.net/tag/class" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">class</a>            </span>        </div>        <div class="article_r">            <span class="link_postdate">2009-05-17 20:47</span>            <span class="link_view" title="阅读次数">146698人阅读</span>            <span class="link_comments" title="评论次数"> <a href="#comments" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(4)</span>            <span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" onclick="javascript:collectArticle('%5b%e6%94%b6%e8%97%8f%5d__declspec%e5%85%b3%e9%94%ae%e5%ad%97%e8%af%a6%e7%bb%86%e7%94%a8%e6%b3%95','4195635');return false;" title="收藏" target="_blank">收藏</a></span>             <span class="link_report"> <a href="#report" onclick="javascript:report(4195635,2);return false;" title="举报">举报</a></span>        </div>    </div>    <div class="embody" style="display:none" id="embody">        <span class="embody_t">本文章已收录于:</span>        <div class="embody_c" id="lib" value="{"err":0,"msg":"ok","data":[]}"></div>    </div>    <style type="text/css">                    .embody{                padding:10px 10px 10px;                margin:0 -20px;                border-bottom:solid 1px #ededed;                            }            .embody_b{                margin:0 ;                padding:10px 0;            }            .embody .embody_t,.embody .embody_c{                display: inline-block;                margin-right:10px;            }            .embody_t{                font-size: 12px;                color:#999;            }            .embody_c{                font-size: 12px;            }            .embody_c img,.embody_c em{                display: inline-block;                vertical-align: middle;                           }             .embody_c img{                               width:30px;                height:30px;            }            .embody_c em{                margin: 0 20px 0 10px;                color:#333;                font-style: normal;            }    </style>    <script type="text/javascript">        $(function () {            try            {                var lib = eval("("+$("#lib").attr("value")+")");                var html = "";                if (lib.err == 0) {                    $.each(lib.data, function (i) {                        var obj = lib.data[i];                        //html += '<img src="' + obj.logo + '"/>' + obj.name + "  ";                        html += ' <a href="' + obj.url + '" target="_blank">';                        html += ' <img src="' + obj.logo + '">';                        html += ' <em><b>' + obj.name + '</b></em>';                        html += ' </a>';                    });                    if (html != "") {                        setTimeout(function () {                            $("#lib").html(html);                                                  $("#embody").show();                        }, 100);                    }                }                  } catch (err)            { }                    });    </script>      <div class="category clearfix">        <div class="category_l">           <img src="http://static.blog.csdn.net/images/category_icon.jpg">            <span>分类:</span>        </div>        <div class="category_r">                    <label onclick="GetCategoryArticles('545955','iamoyjj','top','4195635');">                        <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">C/C++<em>(60)</em></span>                      <img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">                      <img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">                        <div class="subItem">                            <div class="subItem_t"><a href="http://blog.csdn.net/iamoyjj/article/category/545955" target="_blank">作者同类文章</a><i class="J_close">X</i></div>                            <ul class="subItem_l" id="top_545955">                                                        </ul>                        </div>                    </label>                            </div>    </div>           <div id="article_content" class="article_content"><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="mso-spacerun: yes;">原文链接:<a href="http://hi.baidu.com/baiyw920/blog/item/a06ddb986314fd0f6e068c0c.html">http://hi.baidu.com/baiyw920/blog/item/a06ddb986314fd0f6e068c0c.html</a></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="mso-spacerun: yes;">       </span>__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">用于指定所给定类型的实例的与<span lang="EN-US">Microsoft</span>相关的存储方式。其它的有关存储方式的修饰符如<span lang="EN-US">static</span>与<span lang="EN-US">extern</span>等是<span lang="EN-US">C</span>和<span lang="EN-US">C++</span>语言的<span lang="EN-US">ANSI</span>规范,而<span lang="EN-US">__declspec</span>是一种扩展属性的定义。扩展属性语法简化并标准化了<span lang="EN-US">C</span>和<span lang="EN-US">C++</span>语言关于<span lang="EN-US">Microsoft</span>的扩展。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">用法:<span lang="EN-US">__declspec ( extended-decl-modifier )</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">extended-decl-modifier</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">参数如下,可同时出现,中间有空格隔开<span lang="EN-US">: </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: #0000ff;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">align </span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">(<span lang="EN-US">C++</span>)<span lang="EN-US"></span></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">allocate </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">appdomain </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: #0000ff;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">deprecated </span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">(<span lang="EN-US">C++</span>)<span lang="EN-US"></span></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">dllimport </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">dllexport </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">jitintrinsic</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: #0000ff;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">naked </span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">(<span lang="EN-US">C++</span>)<span lang="EN-US"></span></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">noalias </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">noinline </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">noreturn </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: #0000ff;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">nothrow </span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">(<span lang="EN-US">C++</span>)<span lang="EN-US"></span></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">novtable </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">process </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: #0000ff;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">property</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">(<span lang="EN-US">C++</span>)<span lang="EN-US"></span></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">restrict </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">selectany </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="color: #0000ff;">thread </span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: #0000ff;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">uuid</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">(<span lang="EN-US">C++</span>)<span lang="EN-US"></span></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">1.__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">关键字应该出现在简单声明的前面。对于出现在<span lang="EN-US">*</span>或<span lang="EN-US">&</span>后面或者变量声明中标识符的前面的<span lang="EN-US">__declspec</span>,编译器将忽略并且不给出警告。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">2.</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">要注意区分<span lang="EN-US">__declspec</span>是修饰类型还是修饰变量:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">align</span>(8)) <span style="color: blue;">struct</span> Str b;</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">修饰的是变量<span lang="EN-US">b</span>。其它地方定义的<span lang="EN-US">struct Str</span>类型的变量将不受<span lang="EN-US">__declspec(align(8))</span>影响。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">align</span>(8)) <span style="color: blue;">struct</span> Str {};</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">修饰的是<span lang="EN-US">struct Str</span>类型。所有该类型的变量都受<span lang="EN-US">__declspec(align(8))</span>影响。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">align</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">格式:<span lang="EN-US">__declspec(align(n)) declarator</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">其中,<span lang="EN-US">n</span>是对齐参数,其有效值是的整数次幂(从到字节),如,,,,或。参数<span lang="EN-US">declarator</span>是要设置对齐方式的数据。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">1.</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">使用<span style="color: blue;" lang="EN-US">__declspec</span><span lang="EN-US">(<span style="color: blue;">align</span>(n))</span>来精确控制用户自定义数据的对齐方式。你可以在定义<span lang="EN-US">struct</span>,<span lang="EN-US">union</span>,<span lang="EN-US">class</span>或声明变量时使用<span lang="EN-US">__declspec(align(n))</span>。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">2.</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">不能为函数参数使用<span style="color: blue;" lang="EN-US">__declspec</span><span lang="EN-US">(<span style="color: blue;">align</span>(n))</span>。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">3.</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">如果未使用<span style="color: blue;" lang="EN-US">__declspec</span><span lang="EN-US">(<span style="color: blue;">align</span>(<span style="color: blue;">#</span>))</span>,编译器将根据数据大小按自然边界对齐。如字节整数按字节边界对齐;字节<span lang="EN-US">double</span>按字节边界对齐。类或结构体中的数据,将取数据本身的自然对齐方式和<span lang="EN-US">#pragma pack(n)</span>设置的对齐系数中的最小值进行对齐。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">4.<span style="color: blue;">__declspec</span>(<span style="color: blue;">align</span>(n))</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">和<span style="color: blue;" lang="EN-US">#pragma</span><span lang="EN-US"> <span style="color: blue;">pack</span>(n)</span>是一对兄弟,前者规定了对齐系数的最小值,后者规定了对齐系数的最大值。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">5.</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">当两者同时出现时,前者拥有更高的优先级。即,当两者同时出现且值矛盾时,后者将不起作用。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">6.</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">当变量<span lang="EN-US">size</span>大于等于<span style="color: blue;" lang="EN-US">#pragma</span><span lang="EN-US"> <span style="color: blue;">pack</span>(n)</span>指定的<span lang="EN-US">n</span>,而且<span lang="EN-US">__declspec(align(n))</span>指定的数值<span lang="EN-US">n</span>比对应类型长度小的时候,这个<span lang="EN-US">__declspec(align(n))</span>指定将不起作用。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">7.</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">当<span style="color: blue;" lang="EN-US">#pragma</span><span lang="EN-US"> <span style="color: blue;">pack</span>(n)</span>指定的值<span lang="EN-US">n</span>大于等于所有数据成员<span lang="EN-US">size</span>的时候,这个值<span lang="EN-US">n</span>将不起作用。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">allocate</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">格式:<span lang="EN-US">__declspec(allocate(<span style="color: #a31515;">"segname"</span>)) declarator</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">为数据指定存储的数据段。数据段名必须为以下列举中的一个:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">code_seg</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">const_seg</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">data_seg</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">init_seg</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">section</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">appdomain</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">指定托管程序中的每个应用程序域都要有一份指定全局变量或静态成员变量的拷贝。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">deprecated</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">与<span style="color: blue;" lang="EN-US">#pragma</span><span lang="EN-US"> <span style="color: blue;">deprecated</span>()</span>的作用相同。用于指定函数的某个重载形式是不推荐的。当在程序中调用了被<span lang="EN-US">deprecated</span>修饰的函数时,编译器将给出<span lang="EN-US">C4996</span>警告,并且可以指定具体的警告信息。该警告信息可以来源于定义的宏。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">例如:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">// compile with: /W3</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">#define</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> MY_TEXT <span style="color: #a31515;">"function is deprecated"</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">void</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> func1(<span style="color: blue;">void</span>) {}</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">deprecated</span>) <span style="color: blue;">void</span> func1(<span style="color: blue;">int</span>) {}</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">deprecated</span>(<span style="color: #a31515;">"** this is a deprecated function **"</span>)) <span style="color: blue;">void</span> func2(<span style="color: blue;">int</span>) {}</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">deprecated</span>(MY_TEXT)) <span style="color: blue;">void</span> func3(<span style="color: blue;">int</span>) {}</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">int</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> main() {</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span>func1();</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="mso-spacerun: yes;">   </span>func1(1);<span style="mso-spacerun: yes;">   </span><span style="color: green;">// C4996</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">,警告信息:<span lang="EN-US">warning C4996: 'func1': was declared deprecated</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="mso-spacerun: yes;">   </span>func2(1);<span style="mso-spacerun: yes;">   </span><span style="color: green;">// C4996</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">,警告信息:<span lang="EN-US">warning C4996: 'func2': ** this is a deprecated function **</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="mso-spacerun: yes;">   </span>func3(1);<span style="mso-spacerun: yes;">   </span><span style="color: green;">// C4996</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">,警告信息:<span lang="EN-US">warning C4996: 'func3': function is deprecated</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">}</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">dllimport</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">,<span lang="EN-US">dllexport</span>:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">格式:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">( <span style="color: blue;">dllimport</span> ) declarator</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">( <span style="color: blue;">dllexport</span> ) declarator</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">分别用来从<span lang="EN-US">dll</span>导入函数,数据,或对象以及从<span lang="EN-US">dll</span>中导出函数,数据,或对象。相当于定义了<span lang="EN-US">dll</span>的接口,为它的客户<span lang="EN-US">exe</span>或<span lang="EN-US">dll</span>定义可使用的函数,数据,或对象。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">将函数声明成<span lang="EN-US">dllexport</span>就可以免去定义模块定义<span lang="EN-US">(.DEF)</span>文件。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">dllexport</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">代替了<span lang="EN-US">__export</span>关键字。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">被声明为<span lang="EN-US">dllexport</span>的<span lang="EN-US">C++</span>函数导出时的函数名将会按照<span lang="EN-US">C++</span>规则经过处理。如果要求不按照<span lang="EN-US">C++</span>规则进行名字处理,请使用<span lang="EN-US">.def</span>文件或使用<span lang="EN-US">extern <span style="color: #a31515;">"C"</span></span>。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">jitintrinsic</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">格式:<span lang="EN-US">__declspec(jitintrinsic)</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">用于标记一个函数或元素是位通用语言运行时<span lang="EN-US">(CLR)</span>。主要用于<span lang="EN-US">Microsoft</span>提供的某些库中。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">使用<span lang="EN-US">jitintrinsic</span>会在函数签名中加入<span lang="EN-US">MODOPT(IsJitIntrinsic)</span>。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">naked</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">格式:<span lang="EN-US">__declspec(naked) declarator</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">此关键字仅用于<span lang="EN-US">x86</span>系统,多用于虚拟设备驱动。此关键字可以使编译器在生成代码时不包含任何注释或标记。仅可以对函数的定义使用,不能用于数据声明、定义,或者函数的声明。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">noalias</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">仅适用于函数,它指出该函数是半纯粹的函数。半纯粹的函数是指仅引用或修改局部变量、参数和第一层间接参数。它是对编译器的一个承诺,如果该函数引用全局变量或第二层间接指针参数,则编译器会生成中断应用程序的代码。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">restrict</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">格式:<span lang="EN-US">__declspec(restrict) return_type f();</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">仅适用于返回指针的函数声明或定义,如,<span lang="EN-US">CRT</span>的<span lang="EN-US">malloc</span>函数:<span lang="EN-US">__declspec(restrict) <span style="color: blue;">void</span> *malloc(size_t size);</span>它告诉编译器该函数返回的指针不会与任何其它的指针混淆。它为编译器提供执行编译器优化的更多信息。对于编译器来说,最大的困难之一是确定哪些指针会与其它指针混淆,而使用这些信息对编译器很有帮助。有必要指出,这是对编译器的一个承诺,编译器并不对其进行验证。如果您的程序不恰当地使用<span lang="EN-US">__declspec(restrict)</span>,则该程序的行为会不正确。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">noinline</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">因为在类定义中定义的成员函数默认都是<span lang="EN-US">inline</span>的,<span lang="EN-US">__declspec(naked)</span>用于显式指定类中的某个函数不需要<span lang="EN-US">inline(</span>内联<span lang="EN-US">)</span>。如果一个函数很小而且对系统性能影响不大,有必要将其声明为非内敛的。例如,用于处理错误情况的函数。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">noreturn</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">一个函数被<span lang="EN-US">__declspec(noreturn)</span>所修饰,那么它的含义是告诉编译器,这个函数不会返回,其结果是让编译器知道被修饰为<span lang="EN-US">__declspec(noreturn)</span>的函数之后的代码不可到达。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">如果编译器发现一个函数有无返回值的代码分支,编译器将会报<span lang="EN-US">C4715</span>警告,或者<span lang="EN-US">C2202</span>错误信息。如果这个代码分支是因为函数不会返回从而无法到达的话,可以使用约定<span lang="EN-US">__declspec(noreturn)</span>来避免上述警告或者错误。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">将一个期望返回的函数约定为<span lang="EN-US">__declspec(noreturn)</span>将导致未定义的行为。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">在下面的这个例子中,<span lang="EN-US">main</span>函数没有从<span lang="EN-US">else</span>分支返回,所以约定函数<span lang="EN-US">fatal</span>为<span lang="EN-US">__declspec(noreturn)</span>来避免编译或警告信息。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">noreturn</span>) <span style="color: blue;">extern</span> <span style="color: blue;">void</span> fatal () {}</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">int</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> main() {</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">if</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(1)</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span><span style="color: blue;">return</span> 1;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">else</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> <span style="color: blue;">if</span>(0)</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span><span style="color: blue;">return</span> 0;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">else</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span>fatal();</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">}</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">nothrow:</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">格式:<span lang="EN-US">return-type <span style="color: blue;">__declspec</span>(<span style="color: blue;">nothrow</span>) [call-convention] function-name ([argument-list])</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">可用于函数声明。告诉编译器被声明的函数以及函数内部调用的其它函数都不会抛出异常。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">novtable</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">可用于任何类声明中,但最好只用于纯接口类,即类本身从不实例化。此关键字的声明将阻止编译器对构造和析构函数的<span lang="EN-US">vfptr</span>的初始化。可优化编译后代码大小。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">如果试图实例化一个用<span lang="EN-US">__declspec(novtable)</span>声明的类然后访问类中成员,则会在运行时产生访问错误<span lang="EN-US">(access violation</span>,即<span lang="EN-US">AV)</span>。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">process</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">表示你的托管应用程序进程应该拥有一份指定全局变量,静态成员变量,或所有应用程序域共享的静态本地变量的拷贝。在使用<span lang="EN-US">/clr:pure</span>进行编译时,应该使用<span lang="EN-US">__declspec(process)</span>,因为使用<span lang="EN-US">/clr:pure</span>进行编译时,在默认情况下,每个应用程序域拥有一份全局和静态变量的拷贝。在使用<span lang="EN-US">/clr</span>进行编译时,不必使用<span lang="EN-US">__declspec(process)</span>,因为使用<span lang="EN-US">/clr</span>进行编译时,在默认情况下,每个进程有一份全局和静态变量的拷贝。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">只有全局变量,静态成员变量,或本地类型的本地静态变量可以用<span lang="EN-US">__declspec(process)</span>修饰。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">在使用<span lang="EN-US">/clr:pure</span>进行编译时,被声明为<span lang="EN-US">__declspec(process)</span>的变量同时也应该声明为<span lang="EN-US">const</span>类型。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">如果想每个应用程序域拥有一份全局变量的拷贝时,请使用<span lang="EN-US">appdomain</span>。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">property</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">格式:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">( <span style="color: blue;">property</span>( get=get_func_name ) ) declarator</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">( <span style="color: blue;">property</span>( put=put_func_name ) ) declarator</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">( <span style="color: blue;">property</span>( get=get_func_name, put=put_func_name ) ) declarator</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">该属性可用于类或结构定义中的非静态“虚数据成员”。实际上就是做了一个映射,把你的方法映射成属性,以供访问。<span lang="EN-US">get</span>和<span lang="EN-US">put</span>就是属性访问的权限,一个是读的权限,一个是写的权限。当编译器看到被<span lang="EN-US">property</span>修饰的数据成员出现在成员选择符<span lang="EN-US">(<span style="color: #a31515;">"."</span> </span>或<span style="color: #a31515;" lang="EN-US">"->"</span><span lang="EN-US">)</span>的右边的时候,它将把该操作转换成<span lang="EN-US">get</span>或<span lang="EN-US">put</span>方法。该修饰符也可用于类或结构定义中的空数组。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">用法如下:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">struct</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> S {</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span><span style="color: blue;">int</span> i;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span><span style="color: blue;">void</span> putprop(<span style="color: blue;">int</span> j) { </span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">      </span>i = j;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span>}</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span><span style="color: blue;">int</span> getprop() {</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">      </span><span style="color: blue;">return</span> i;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span>}</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span><span style="color: blue;">__declspec</span>(<span style="color: blue;">property</span>(get = getprop, put = putprop)) <span style="color: blue;">int</span> the_prop;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">};</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">int</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> main() {</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span>S s;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span>s.the_prop = 5;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span><span style="color: blue;">return</span> s.the_prop;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">}</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">selectany</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">格式:<span lang="EN-US">__declspec(selectany) declarator</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">在<span lang="EN-US">MFC</span>,<span lang="EN-US">ATL</span>的源代码中充斥着<span lang="EN-US">__declspec(selectany)</span>的声明。<span lang="EN-US">selectany</span>可以让我们在<span lang="EN-US">.h</span>文件中初始化一个全局变量而不是只能放在<span lang="EN-US">.cpp</span>中。比如有一个类,其中有一个静态变量,那么我们可以在<span lang="EN-US">.h</span>中通过类似<span lang="EN-US">__declspec(selectany) type <span style="color: blue;">class</span>::variable = value;</span>这样的代码来初始化这个全局变量。既是该<span lang="EN-US">.h</span>被多次<span lang="EN-US">include</span>,链接器也会为我们剔除多重定义的错误。对于<span lang="EN-US">template</span>的编程会有很多便利。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">用法如下:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">selectany</span>) <span style="color: blue;">int</span> x1=1; <span style="color: green;">//</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">正确,<span lang="EN-US">x1</span>被初始化,并且对外部可见<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">const</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> <span style="color: blue;">__declspec</span>(<span style="color: blue;">selectany</span>) <span style="color: blue;">int</span> x2 =2; <span style="color: green;">//</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">错误,在<span lang="EN-US">C++</span>中,默认情况下<span lang="EN-US">const</span>为<span lang="EN-US">static</span>;但在<span lang="EN-US">C</span>中是正确的,其默认情况下<span lang="EN-US">const</span>不为<span lang="EN-US">static</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">extern</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> <span style="color: blue;">const</span> <span style="color: blue;">__declspec</span>(<span style="color: blue;">selectany</span>) <span style="color: blue;">int</span> x3=3; <span style="color: green;">//</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">正确,<span lang="EN-US">x3</span>是<span lang="EN-US">extern const</span>,对外部可见<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">extern</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> <span style="color: blue;">const</span> <span style="color: blue;">int</span> x4;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">const</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> <span style="color: blue;">__declspec</span>(<span style="color: blue;">selectany</span>) <span style="color: blue;">int</span> x4=4; <span style="color: green;">//</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">正确,<span lang="EN-US">x4</span>是<span lang="EN-US">extern const</span>,对外部可见<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">extern</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> <span style="color: blue;">__declspec</span>(<span style="color: blue;">selectany</span>) <span style="color: blue;">int</span> x5; <span style="color: green;">//</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">错误,<span lang="EN-US">x5</span>未初始化,不能用<span lang="EN-US">__declspec(selectany)</span>修饰<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">class</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> X {</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">public</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">:</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">X(<span style="color: blue;">int</span> i){i++;};</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">int</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> i;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">};</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">selectany</span>) X x(1); <span style="color: green;">//</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">正确,全局对象的动态初始化<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">thread</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">格式:<span lang="EN-US">__declspec(thread) declarator</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">声明<span lang="EN-US">declarator</span>为线程局部变量并具有线程存储时限,以便链接器安排在创建线程时自动分配的存储。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">线程局部存储<span lang="EN-US">(TLS)</span>是一种机制,在多线程运行环境中,每个线程分配自己的局部数据。在标准多线程程序中,数据是在多个线程间共享的,而<span lang="EN-US">TLS</span>是一种为每个线程分配自己局部数据的机制。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">该属性只能用于数据或不含成员函数的类的声明和定义,不能用于函数的声明和定义。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">该属性的使用可能会影响<span lang="EN-US">DLL</span>的延迟载入。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">该属性只能用于静态数据,包括全局数据对象<span lang="EN-US">(static</span>和<span lang="EN-US">extern)</span>,局部静态对象,类的静态数据成员;不能用于自动数据对象。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">该属性必须同时用于数据的声明和定义,不管它的声明和定义是在一个文件还是多个文件。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">thread</span>)</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">不能用作类型修饰符。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">如果在类声明的同时没有定义对象,则<span lang="EN-US">__declspec(thread)</span>将被忽略,例如:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">// compile with: /LD</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">thread</span>) <span style="color: blue;">class</span> X</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">{</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">public</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">:</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span><span style="color: blue;">int</span> I; </span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">} x;<span style="mso-spacerun: yes;">   </span><span style="color: green;">//x</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">是线程对象<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">X y;<span style="mso-spacerun: yes;">   </span><span style="color: green;">//y</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">不是线程对象<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">下面两个例子从语义上来说是相同的:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">thread</span>) <span style="color: blue;">class</span> B {</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">public</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">:</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span><span style="color: blue;">int</span> data;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">} BObject;<span style="mso-spacerun: yes;">   </span><span style="color: green;">//BObject</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">是线程对象<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">class</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> B2 {</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">public</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">:</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span><span style="color: blue;">int</span> data;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;">};</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">__declspec</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">(<span style="color: blue;">thread</span>) B2 BObject2;<span style="mso-spacerun: yes;">   </span><span style="color: green;">// BObject2</span></span><span style="color: green; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">是线程对象<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">uuid</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;">:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">格式:<span lang="EN-US">__declspec( uuid(<span style="color: #a31515;">"ComObjectGUID"</span>) ) declarator</span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">将具有唯一标识符号的已注册内容声明为一个变量,可使用<span lang="EN-US">__uuidof()</span>调用。<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="font-size: small;">用法如下:<span lang="EN-US"></span></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">struct</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> <span style="color: blue;">__declspec</span>(<span style="color: blue;">uuid</span>(<span style="color: #a31515;">"00000000-0000-0000-c000-000000000046"</span>)) IUnknown;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-size: small;"><span style="color: blue; font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US">struct</span><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> <span style="color: blue;">__declspec</span>(<span style="color: blue;">uuid</span>(<span style="color: #a31515;">"{00020400-0000-0000-c000-000000000046}"</span>)) IDispatch;</span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;" align="left"><span style="font-family: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"><span style="font-size: small;"> </span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="mso-bidi-font-size: 10.5pt;" lang="EN-US"><span style="font-size: small; font-family: Times New Roman;"> </span></span></p>   </div><!-- Baidu Button BEGIN --><div class="bdsharebuttonbox tracking-ad bdshare-button-style0-16" style="float: right;" data-mod="popu_172" data-bd-bind="1495077476822"><a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important" target="_blank"></a><a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间" style="background-position:0 -52px !important" target="_blank"></a><a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博" style="background-position:0 -104px !important" target="_blank"></a><a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博" style="background-position:0 -260px !important" target="_blank"></a><a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网" style="background-position:0 -208px !important" target="_blank"></a><a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信" style="background-position:0 -1612px !important" target="_blank"></a></div><script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script><!-- Baidu Button END -->   <link rel="stylesheet" href="http://static.blog.csdn.net/css/blog_detail.css">    <!--172.16.140.15--><!-- Baidu Button BEGIN --><script type="text/javascript" id="bdshare_js" data="type=tools&uid=1536434" src="http://bdimg.share.baidu.com/static/js/bds_s_v2.js?cdnversion=415300"></script><script type="text/javascript">    document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)</script><!-- Baidu Button END --><script type="text/javascript">    var fromjs = $("#fromjs");    if (fromjs.length > 0) {            $("#fromjs .markdown_views pre").addClass("prettyprint");            prettyPrint();            $('pre.prettyprint code').each(function () {                var lines = $(this).text().split('\n').length;                var $numbering = $('<ul/>').addClass('pre-numbering').hide();                $(this).addClass('has-numbering').parent().append($numbering);                for (i = 1; i <= lines; i++) {                    $numbering.append($('<li/>').text(i));                };                $numbering.fadeIn(1700);            });            $('.pre-numbering li').css("color", "#999");        }        $(".markdown_views a[target!='_blank']").attr("target", "_blank");    $(".toc a[target='_blank']").attr("target", "");</script>         <div id="digg" articleid="4195635">            <dl id="btnDigg" class="digg digg_disable" onclick="btndigga();">                                <dt>顶</dt>                <dd>0</dd>            </dl>                                     <dl id="btnBury" class="digg digg_disable" onclick="btnburya();">                                <dt>踩</dt>                <dd>0</dd>                           </dl>                    </div>     <div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" target="_blank"> </a>   </div>    <div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" target="_blank"> </a></div>    <script type="text/javascript">                function btndigga() {                    $(".tracking-ad[data-mod='popu_222'] a").click();                }                function btnburya() {                    $(".tracking-ad[data-mod='popu_223'] a").click();                }            </script>   <ul class="article_next_prev">                <li class="prev_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='/iamoyjj/article/details/4195542';">上一篇</span><a href="/iamoyjj/article/details/4195542" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">对几个 T-SQL 特有的常用语法点的总结</a></li>                <li class="next_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='/iamoyjj/article/details/4196583';">下一篇</span><a href="/iamoyjj/article/details/4196583" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">[收藏]预编译指令 #ifndef #define #endif 的用法</a></li>    </ul>    <div style="clear:both; height:10px;"></div>    <div id="articlecommend" style="display:none"><li><em>•</em><a href="http://blog.csdn.net/zxf1by1/article/details/7052436" title="Hibernate工具类丰富和Hql用法 对象属性名与关键字冲突" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">Hibernate工具类丰富和Hql用法 对象属性名与关键字冲突</a></li><li><em>•</em><a href="http://blog.csdn.net/csmnjk/article/details/50548520" title="My97DatePicker日期控件用法详细步骤带案例" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">My97DatePicker日期控件用法详细步骤带案例</a></li><li><em>•</em><a href="http://blog.csdn.net/u011411356/article/details/9698333" title="黑马程序员---DataSet用法详细" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">黑马程序员---DataSet用法详细</a></li><li><em>•</em><a href="http://blog.csdn.net/zinechina/article/details/38141747" title="aspnet中的<%%>形式的详细用法总结" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">aspnet中的<%%>形式的详细用法总结</a></li><li><em>•</em><a href="http://blog.csdn.net/robertsong2004/article/details/40889813" title="select函数详细用法解析" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">select函数详细用法解析</a></li><li><em>•</em><a href="http://blog.csdn.net/weixin_36930207/article/details/53811326" title="List详细用法与原理解析" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">List详细用法与原理解析</a></li><li><em>•</em><a href="http://blog.csdn.net/lyuan1314/article/details/9855567" title="标准C++中Const的详细用法总结" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">标准C++中Const的详细用法总结</a></li><li><em>•</em><a href="http://blog.csdn.net/chenhongwu666/article/details/52338158" title="jquery jtemplatesjs模板渲染引擎的详细用法第三篇" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">jquery jtemplatesjs模板渲染引擎的详细用法第三篇</a></li><li><em>•</em><a href="http://blog.csdn.net/qq690388648/article/details/25432999" title="超详细mysql left joinright joininner join用法分析" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">超详细mysql left joinright joininner join用法分析</a></li><li><em>•</em><a href="http://blog.csdn.net/qq_25543685/article/details/59483617" title="mysql group by 用法解析详细" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">mysql group by 用法解析详细</a></li></div>        <div class="similar_article">                <h4></h4>                <div class="similar_c" style="margin:20px 0px 0px 0px">                    <div class="similar_c_t">                        相关文章推荐                    </div>                                       <div class="similar_wrap tracking-ad" data-mod="popu_36" style="max-height:195px;">                                               <ul class="similar_list fl">                                                  <li><em>•</em><a href="http://blog.csdn.net/zxf1by1/article/details/7052436" title="Hibernate工具类丰富和Hql用法 对象属性名与关键字冲突" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">Hibernate工具类丰富和Hql用法 对象属性名与关键字冲突</a></li><li><em>•</em><a href="http://blog.csdn.net/csmnjk/article/details/50548520" title="My97DatePicker日期控件用法详细步骤带案例" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">My97DatePicker日期控件用法详细步骤带案例</a></li><li><em>•</em><a href="http://blog.csdn.net/u011411356/article/details/9698333" title="黑马程序员---DataSet用法详细" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">黑马程序员---DataSet用法详细</a></li><li><em>•</em><a href="http://blog.csdn.net/zinechina/article/details/38141747" title="aspnet中的<%%>形式的详细用法总结" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">aspnet中的<%%>形式的详细用法总结</a></li><li><em>•</em><a href="http://blog.csdn.net/robertsong2004/article/details/40889813" title="select函数详细用法解析" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">select函数详细用法解析</a></li></ul>                          <ul class="similar_list fr">                                                  <li><em>•</em><a href="http://blog.csdn.net/weixin_36930207/article/details/53811326" title="List详细用法与原理解析" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">List详细用法与原理解析</a></li><li><em>•</em><a href="http://blog.csdn.net/lyuan1314/article/details/9855567" title="标准C++中Const的详细用法总结" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">标准C++中Const的详细用法总结</a></li><li><em>•</em><a href="http://blog.csdn.net/chenhongwu666/article/details/52338158" title="jquery jtemplatesjs模板渲染引擎的详细用法第三篇" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">jquery jtemplatesjs模板渲染引擎的详细用法第三篇</a></li><li><em>•</em><a href="http://blog.csdn.net/qq690388648/article/details/25432999" title="超详细mysql left joinright joininner join用法分析" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">超详细mysql left joinright joininner join用法分析</a></li><li><em>•</em><a href="http://blog.csdn.net/qq_25543685/article/details/59483617" title="mysql group by 用法解析详细" strategy="SearchAlgorithm" target="_blank" style="width: 290px;">mysql group by 用法解析详细</a></li></ul>                    </div>                </div>            </div>          </div>