• <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 
            伊人久久大香线蕉综合热线| 久久国产精品成人免费| 久久久精品免费国产四虎| 国产A三级久久精品| 久久免费视频1| 色综合久久88色综合天天 | 久久99精品久久久久久秒播| 欧美伊香蕉久久综合类网站| 国产精品视频久久久| 久久久精品一区二区三区| 免费观看成人久久网免费观看| 91精品国产91久久综合| 国内精品久久国产大陆| 亚洲国产精品一区二区久久| 久久香蕉综合色一综合色88| 久久电影网一区| 久久精品国产福利国产琪琪| 婷婷久久综合| 日产精品99久久久久久| 久久精品国产亚洲沈樵| 久久久久这里只有精品 | 精品熟女少妇AV免费久久| 久久笫一福利免费导航 | 国产精品久久久99| 欧美国产精品久久高清| 色88久久久久高潮综合影院| 日韩一区二区久久久久久| 久久无码一区二区三区少妇| 国产成人精品三上悠亚久久| 一级做a爰片久久毛片16| 欧洲国产伦久久久久久久| 久久无码人妻一区二区三区| 国产亚洲美女精品久久久| 久久亚洲日韩看片无码| 国产激情久久久久影院老熟女 | 午夜精品久久久久| 久久er热视频在这里精品| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 中文精品久久久久人妻| 亚洲精品高清久久| 亚洲αv久久久噜噜噜噜噜|