• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            aurain
            技術文摘
            posts - 137,  comments - 268,  trackbacks - 0

            Tells the compiler that the declared global data item (variable or object) is a pick-any COMDAT (a packaged function).


            __declspec( selectany ) declarator
            

            At link time, if multiple definitions of a COMDAT are seen, the linker picks one and discards the rest. If the linker option /OPT:REF (Optimizations) is selected, then COMDAT elimination will occur to remove all the unreferenced data items in the linker output.

            Constructors and assignment by global function or static methods in the declaration do not create a reference and will not prevent /OPT:REF elimination. Side effects from such code should not be depended on when no other references to the data exist.

            For dynamically initialized, global objects, selectany will discard an unreferenced object's initialization code, as well.

            A global data item can normally be initialized only once in an EXE or DLL project. selectany can be used in initializing global data defined by headers, when the same header appears in more than one source file. selectany is available in both the C and C++ compilers.


            //Correct - x1 is initialized and externally visible 
            __declspec(selectany) int x1=1;
            
            //Incorrect - const is by default static in C++, so 
            //x2 is not visible externally (This is OK in C, since
            //const is not by default static in C)
            const __declspec(selectany) int x2 =2;
            
            //Correct - x3 is extern const, so externally visible
            extern const __declspec(selectany) int x3=3;
            
            //Correct - x4 is extern const, so it is externally visible
            extern const int x4;
            const __declspec(selectany) int x4=4;
            
            //Incorrect - __declspec(selectany) is applied to the uninitialized
            //declaration of x5
            extern __declspec(selectany) int x5;
            
            // OK: dynamic initialization of global object
            class X {
            public:
            X(int i){i++;};
            int i;
            };
            
            __declspec(selectany) X x(1);
            

            This code shows how to use the selectany attribute to ensure data COMDAT folding when you also use the /OPT:ICF linker option. Note that data must be marked with selectany and placed in a const (readonly) section. You must explicitly specify the read-only section.

            // selectany2.cpp
            // in the following lines, const marks the variables as read only
            __declspec(selectany) extern const int ix = 5;
            __declspec(selectany) extern const int jx = 5;
            int main() {
               int ij;
               ij = ix + jx;
            }
            

             

            posted on 2013-01-14 00:03 閱讀(628) 評論(0)  編輯 收藏 引用 所屬分類: vc

            <2013年1月>
            303112345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網絡開發

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 498815
            • 排名 - 36

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            久久本道久久综合伊人| 久久精品国产久精国产思思| 国产 亚洲 欧美 另类 久久| 久久青青国产| 中文字幕久久精品无码| 久久久久久人妻无码| 久久亚洲精品视频| 四虎国产精品成人免费久久| 无码人妻久久一区二区三区| 99久久国产热无码精品免费久久久久| A级毛片无码久久精品免费| 久久人人爽人人爽人人片AV高清| 久久久一本精品99久久精品88| 狠狠色综合久久久久尤物| 中文字幕无码免费久久| 久久精品国产一区二区三区不卡 | 亚洲国产成人久久综合一| 久久最新免费视频| 精品精品国产自在久久高清| 亚洲国产天堂久久久久久| 国产精品久久永久免费| 国产aⅴ激情无码久久| 久久综合伊人77777| 久久免费美女视频| 狠狠色丁香久久综合婷婷| 亚洲精品无码久久千人斩| 中文成人无码精品久久久不卡| 久久青青草原国产精品免费| 老色鬼久久亚洲AV综合| 欧美国产成人久久精品| 亚洲性久久久影院| 国产精品成人久久久| 久久久久亚洲精品男人的天堂| 久久99国产精品久久99| 久久久久一区二区三区| 婷婷久久综合九色综合98| 国内精品伊人久久久久| 亚洲午夜久久久精品影院| 国产精品久久久久aaaa| 日本三级久久网| 久久激情五月丁香伊人|