• <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 
            99久久精品国产综合一区| 久久精品国产亚洲AV不卡| AAA级久久久精品无码区| 久久se精品一区精品二区国产| 色综合久久久久综合99| 欧美大香线蕉线伊人久久| 久久这里只精品国产99热| 日韩精品久久久久久久电影| 久久久综合九色合综国产| 欧美日韩久久中文字幕| 伊人久久综合热线大杳蕉下载| A级毛片无码久久精品免费| 丁香久久婷婷国产午夜视频| 久久99国产乱子伦精品免费| 欧美亚洲国产精品久久| 久久九九久精品国产免费直播| 久久午夜伦鲁片免费无码| 久久人做人爽一区二区三区| 久久99精品久久久久久9蜜桃 | 亚洲一区精品伊人久久伊人| 好久久免费视频高清| MM131亚洲国产美女久久| 99久久夜色精品国产网站 | 人妻无码αv中文字幕久久| 久久久久久久国产免费看| 国产—久久香蕉国产线看观看| 久久精品国产99久久无毒不卡| 久久综合亚洲鲁鲁五月天| 一本色综合久久| 久久91精品国产91| 久久精品国产亚洲av麻豆蜜芽| 久久天天躁狠狠躁夜夜不卡| 久久久久青草线蕉综合超碰| 久久99久久99精品免视看动漫| 超级97碰碰碰碰久久久久最新| 亚洲国产成人久久综合区| 中文字幕久久精品| 久久婷婷激情综合色综合俺也去| 久久久久久久久无码精品亚洲日韩| 浪潮AV色综合久久天堂| 久久精品国产99国产精品澳门|