• <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()
            {
            ????......
            }

            發現程序2編譯之后所得的.exe文件比程序1的要大得多。當下甚為不解,于是手工編譯了一下,并使用了/FAs編譯選項來查看了一下其各自的.asm,發現在程序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

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

            相關參考: http://www.linuxsir.org/bbs/showthread.php?t=204807
            posted @ 2007-03-13 00:09 w2001 閱讀(4616) | 評論 (0)編輯 收藏
            1. GBK是GB2312與BIG5的超集,結構基本相同
            2. GB13000/Unicode是等同采用ISO?10646/Unicode的國家標準
            3. GB13000/Unicode又是GBK的超集
            4. UTF-8/UTF-16只是Unicode的編碼變種,并不是字符集合的變種
            5. GB18030是目前最大的漢字字符集合,比GB13000都要大
            6. GB18030不是簡單的GBK超集,其體系結構完全不一樣
            7. GB18030從未實現并真正應用過......
            8. GBK是國家規范,GB2312/GB18030/GB13000則為國家標準
            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. 程序員趣味讀物:談談Unicode編碼
            2. 維基百科全書 - GBK
            3. 用信息化手段進行語言文字研究
            posted @ 2007-03-13 00:05 w2001 閱讀(443) | 評論 (0)編輯 收藏
            問題表現:小企鵝輸入法的編碼配置導致Console中的Man出現<A1><AF>的亂碼,比如,man setup/man tcpdump

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

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

            至此,問題全部解決。
            posted @ 2007-03-12 15:50 w2001 閱讀(949) | 評論 (0)編輯 收藏
            僅列出標題
            共9頁: 1 2 3 4 5 6 7 8 9 
            99久久精品免费看国产一区二区三区 | 青青草原综合久久大伊人| 亚洲精品午夜国产va久久| 亚洲国产成人久久综合一区77| 热久久最新网站获取| …久久精品99久久香蕉国产| 久久www免费人成看国产片| 99久久这里只精品国产免费| 成人国内精品久久久久影院| 青青草国产97免久久费观看| 性欧美大战久久久久久久久| 国产福利电影一区二区三区久久久久成人精品综合 | 国产精品久久网| 久久国产精品免费一区二区三区| 久久精品国产久精国产一老狼| 免费观看成人久久网免费观看| 久久综合亚洲色HEZYO社区| 久久久综合九色合综国产| 2021国内久久精品| 久久国产香蕉视频| 国产精品欧美久久久天天影视| 一级a性色生活片久久无| 亚洲精品高清久久| 国产精品久久久久久吹潮| 伊人久久大香线蕉综合网站| 国产精品美女久久久久AV福利| 国产精品美女久久久久网| 99国产精品久久| 99精品久久精品| 久久夜色精品国产亚洲| 久久影院综合精品| 色欲久久久天天天综合网| 伊人久久一区二区三区无码| 日批日出水久久亚洲精品tv| 久久婷婷五月综合成人D啪| 久久久久99精品成人片三人毛片| 精品久久久久久无码中文字幕 | 99久久99这里只有免费费精品| 亚洲精品乱码久久久久久蜜桃图片| 久久国产亚洲精品| 婷婷五月深深久久精品|