• <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

            <2009年7月>
            2829301234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網絡開發

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 498811
            • 排名 - 36

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            99久久精品国产一区二区三区| 中文精品久久久久人妻| 91久久精品91久久性色| 久久精品这里热有精品| 国产综合成人久久大片91| 精品久久久一二三区| 国产精品久久久久无码av| 午夜视频久久久久一区| 久久精品中文闷骚内射| 久久中文精品无码中文字幕| 久久久久亚洲精品天堂| 无码国内精品久久综合88| 久久免费视频网站| 亚洲午夜久久久久久久久久| 久久se精品一区二区影院| 久久精品国产亚洲AV香蕉| 97视频久久久| 日本加勒比久久精品| 国产精品久久久天天影视香蕉 | 国产精品久久久久久久| 亚洲国产精品成人AV无码久久综合影院| 久久久久亚洲AV无码麻豆| 亚洲欧美精品一区久久中文字幕| 99久久国产免费福利| 国产精品一区二区久久不卡| 久久亚洲AV成人无码软件| 亚洲精品久久久www| 日本久久久久久久久久| 久久精品国产欧美日韩| 国产激情久久久久影院老熟女| 韩国免费A级毛片久久| 久久99热只有频精品8| 久久久久人妻精品一区二区三区 | 亚洲午夜福利精品久久| 久久久久国产精品嫩草影院| 91久久精品国产成人久久| 精品久久香蕉国产线看观看亚洲| 久久99精品久久久久久动态图| 伊人久久精品无码av一区| 人妻无码αv中文字幕久久琪琪布| 久久精品国产99久久久古代|