• <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>
            隨筆 - 85  文章 - 47  trackbacks - 0

            常用鏈接

            隨筆分類

            隨筆檔案

            搜索

            •  

            最新評論

            用cl編譯兩個小程序如下:

            程序1:
            int?ar[30000];
            void?main()
            {
            ????......
            }

            程序2:
            int?ar[300000]?=?{1,?2,?3,?4,?5,?6?};
            void?main()
            {
            ????......
            }

            發(fā)現(xiàn)程序2編譯之后所得的.exe文件比程序1的要大得多。當(dāng)下甚為不解,于是手工編譯了一下,并使用了/FAs編譯選項(xiàng)來查看了一下其各自的.asm,發(fā)現(xiàn)在程序1.asm中ar的定義如下:

            _BSS?SEGMENT
            ??????ar@@3PAHA?DD?0493e0H?DUP?(?)????;?ar
            _BSS?ENDS

            而在程序2.asm中,ar被定義為:

            _DATA?SEGMENT
            ??????ar@@3PAHA?DD?01H?????;?ar
            ????????????????DD?02H
            ????????????????DD?03H
            ????????????????ORG?$+1199988
            _DATA?ENDS

            區(qū)別很明顯,一個位于.bss段,而另一個位于.data段,兩者的區(qū)別在于:全局的未初始化變量存在于.bss段中,具體體現(xiàn)為一個占位符;全局的已初始化變量存于.data段中;而函數(shù)內(nèi)的自動變量都在棧上分配空間。.bss是不占用.exe文件空間的,其內(nèi)容由操作系統(tǒng)初始化(清零);而.data卻需要占用,其內(nèi)容由程序初始化,因此造成了上述情況。

            相關(guān)參考: http://www.linuxsir.org/bbs/showthread.php?t=204807
            posted @ 2007-03-13 00:09 w2001 閱讀(4627) | 評論 (0)編輯 收藏
            1. GBK是GB2312與BIG5的超集,結(jié)構(gòu)基本相同
            2. GB13000/Unicode是等同采用ISO?10646/Unicode的國家標(biāo)準(zhǔn)
            3. GB13000/Unicode又是GBK的超集
            4. UTF-8/UTF-16只是Unicode的編碼變種,并不是字符集合的變種
            5. GB18030是目前最大的漢字字符集合,比GB13000都要大
            6. GB18030不是簡單的GBK超集,其體系結(jié)構(gòu)完全不一樣
            7. GB18030從未實(shí)現(xiàn)并真正應(yīng)用過......
            8. GBK是國家規(guī)范,GB2312/GB18030/GB13000則為國家標(biāo)準(zhǔn)
            9. ASCII、GB2312、GBK到GB18030是向下兼容的(另一說)
            10. Unicode只與ASCII兼容(另一說)

            GB2312<GBK<GB13000/Unicode<ISO?10646/Unicode
            BIG5<GBK<GB13000/Unicode<ISO?10646/Unicode
            GB13000/Unicode<GB18030
            Unicode==UTF-8==UTF-16

            參考:
            1. 程序員趣味讀物:談?wù)刄nicode編碼
            2. 維基百科全書 - GBK
            3. 用信息化手段進(jìn)行語言文字研究
            posted @ 2007-03-13 00:05 w2001 閱讀(445) | 評論 (0)編輯 收藏
            問題表現(xiàn):小企鵝輸入法的編碼配置導(dǎo)致Console中的Man出現(xiàn)<A1><AF>的亂碼,比如,man setup/man tcpdump

            解決方案:禁止Console使用中文編碼,在.bash_profile或.bashrc中將CHARSET和LANG均修改為en_US.utf8;同時記得在SecureCRT中將Session的編碼改為UTF-8即可。

            遺留問題:上述方法帶來了一些新問題,首先,cat一個GB2312編碼的文件,發(fā)現(xiàn)SecureCRT中是亂碼,這是因?yàn)镚B2312被SecureCRT解釋成了UTF-8,翻了翻man,發(fā)現(xiàn)一個自帶的編碼轉(zhuǎn)換工具iconv不錯,于是將它作為一個alias寫在.bashrc里面了:"alias ic='iconv -f GB2312 -t UTF-8'",這樣,只需"cat filename | ic"可正確輸出GB2312編碼的文件。其次,還存在著一個問題,那便是vim,vim一個GB2312編碼的文件,也發(fā)現(xiàn)了亂碼,仔細(xì)思考了一下,發(fā)現(xiàn)只需要把/etc/vimrc中vim打開文件的默認(rèn)編碼改成GB2312即可,即在其最后添加上"set fileencoding=gbk"、"set fileencodings=utf-8,gbk,utf-16,big5"即可。

            至此,問題全部解決。
            posted @ 2007-03-12 15:50 w2001 閱讀(958) | 評論 (0)編輯 收藏
            僅列出標(biāo)題
            共9頁: 1 2 3 4 5 6 7 8 9 
            欧美熟妇另类久久久久久不卡| 久久WWW免费人成—看片| 日韩精品久久无码人妻中文字幕| 久久精品免费一区二区| 久久久青草青青亚洲国产免观| 国产AV影片久久久久久| 久久中文字幕人妻丝袜| 91精品日韩人妻无码久久不卡 | 亚洲精品高清国产一久久| 精品久久久久久无码中文野结衣 | 伊人久久综合精品无码AV专区| 久久人人爽人人爽人人片av高请| 久久精品中文字幕一区| 久久偷看各类wc女厕嘘嘘| 香蕉久久久久久狠狠色| 国产激情久久久久影院老熟女免费| 一本色道久久88精品综合| 亚洲人成无码久久电影网站| 久久99国产精品一区二区| 国产成年无码久久久免费| 午夜精品久久久久9999高清| 久久国产高清一区二区三区| 久久综合中文字幕| 久久无码人妻一区二区三区| 久久妇女高潮几次MBA| 久久这里的只有是精品23| 久久精品国产亚洲Aⅴ香蕉| 日本三级久久网| 日韩精品久久久久久| 亚洲午夜精品久久久久久人妖| 99久久精品国产麻豆| 99久久人妻无码精品系列蜜桃| 亚洲精品无码专区久久久| 久久精品国产99久久久古代| 久久久久亚洲AV无码专区首JN| 久久天天躁夜夜躁狠狠| 久久久久久伊人高潮影院| 久久影院综合精品| 1000部精品久久久久久久久| 欧美日韩中文字幕久久伊人| 亚洲天堂久久精品|