![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 15:15 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 你的編譯器識字嗎? |
| 可打印版本 990 / 4 |
| 第1楼 bush | 发表于 2005-01-28 00:00 |
| 银牌会员 发帖 730 积分 2,165 | |
|
你的編譯器識字嗎? 只需要看一看下面這個程序運行結果就知道了!——先別吱声(尤其是用TC的朋友),拿起你手中能找到的所有編譯器,都來編譯、運行一下。然后告訴我:你的結果、所使用的編譯器、所在操作系統。——還愣着干什么?趕快動手!
嘿嘿,保持點儿神祕感,等你做完了我再公布答案: [ Last edited by bush on 2008-1-25 at 12:24 PM ] |
|
| 第2楼 JonePeng | 发表于 2005-01-28 00:00 |
| 金牌会员 发帖 1,883 积分 4,562 来自 广东广州 | |
|
呵呵,Bush大哥,我在Win98下用TC编译,输出“辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬.”
其实是printf()那行中的字符“\”作怪,“\”后面跟一个ASCII码的扩展字符,TC编译后便输出那个扩展字符,而“\”没有输出,因此一连串ASCII码的扩展字符连在一起又变成另外的中文。 |
|
| 第3楼 bush | 发表于 2005-01-28 00:00 |
| 银牌会员 发帖 730 积分 2,165 | |
|
話題由來 這是我在看Watcom說明書時寫的一個測試程序。當時有個參數引起了我的注意:它可以把字符按
日韓或台灣字處理,具體解釋是亞洲字符是雙字節的,高位字符和低位字符共同拼接成為一個 「字」,因此要防止把某些「字」的低位字符誤認為(\)或(" 。我沒有日韓系統支持,就把GB字庫中的所有低位字符為『\』的「字」挑出來,驗証此功能。順便檢測一下其它編譯器。 結果發現,Turbo C運行結果錯誤。原因是誤認了'\'作轉義符,相鄰漢字的高位字符重新組合 成新字(面目全非)。而Borland C++ 5.5、VC 6.0運行結果正確。…… |
|
| 第4楼 JonePeng | 发表于 2005-01-29 00:00 |
| 金牌会员 发帖 1,883 积分 4,562 来自 广东广州 | |
|
哦,原来如此,那就是说转义字符“\”的功能在Borland C++ 5.5和VC 6等高级版本中得到修正。毕竟,这些高版本的C编译器都是在Windows下运行,而TC是80年代DOS下的编译器,TC在那个年代还没考虑到对中文的支持性啊,尤其是GB大字符集里的繁体字和日韩字。
|
|
| 第5楼 yyz985 | 发表于 2005-01-29 00:00 |
| 初级用户 发帖 35 积分 194 来自 上海 | |
|
正常自己做的CEditor解释器:cl 12.0链接器:linker 6.0
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |