中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 11:15
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 你的編譯器識字嗎? 查看 883 回复 4
楼 主 你的編譯器識字嗎? 发表于 2005-01-28 00:00 ·  中国 重庆 渝中区 电信
银牌会员
★★★
积分 2,165
发帖 730
注册 2004-04-21 00:00
22年会员
UID 22966
性别 男
状态 离线
只需要看一看下面這個程序運行結果就知道了!——先別吱声(尤其是用TC的朋友),拿起你手中能找到的所有編譯器,都來編譯、運行一下。然后告訴我:你的結果、所使用的編譯器、所在操作系統。——還愣着干什么?趕快動手!

#include <stdio.h>
int main(void)
{
printf("hello world!——盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒.");
return 0;
}





嘿嘿,保持點儿神祕感,等你做完了我再公布答案:


[ Last edited by bush on 2008-1-25 at 12:24 PM ]
2 发表于 2005-01-28 00:00 ·  中国 广东 广州 白云区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
呵呵,Bush大哥,我在Win98下用TC编译,输出“辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬.”
其实是printf()那行中的字符“\”作怪,“\”后面跟一个ASCII码的扩展字符,TC编译后便输出那个扩展字符,而“\”没有输出,因此一连串ASCII码的扩展字符连在一起又变成另外的中文。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
3 話題由來 发表于 2005-01-28 00:00 ·  中国 重庆 云阳县 电信
银牌会员
★★★
积分 2,165
发帖 730
注册 2004-04-21 00:00
22年会员
UID 22966
性别 男
状态 离线
這是我在看Watcom說明書時寫的一個測試程序。當時有個參數引起了我的注意:它可以把字符按
日韓或台灣字處理,具體解釋是亞洲字符是雙字節的,高位字符和低位字符共同拼接成為一個
「字」,因此要防止把某些「字」的低位字符誤認為(\)或("。我沒有日韓系統支持,就把GB字庫
中的所有低位字符為『\』的「字」挑出來,驗証此功能。順便檢測一下其它編譯器。
結果發現,Turbo C運行結果錯誤。原因是誤認了'\'作轉義符,相鄰漢字的高位字符重新組合
成新字(面目全非)。而Borland C++ 5.5、VC 6.0運行結果正確。……
4 发表于 2005-01-29 00:00 ·  中国 广东 广州 白云区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
哦,原来如此,那就是说转义字符“\”的功能在Borland C++ 5.5和VC 6等高级版本中得到修正。毕竟,这些高版本的C编译器都是在Windows下运行,而TC是80年代DOS下的编译器,TC在那个年代还没考虑到对中文的支持性啊,尤其是GB大字符集里的繁体字和日韩字。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
5 发表于 2005-01-29 00:00 ·  中国 上海 电信
初级用户
积分 194
发帖 35
注册 2005-01-10 00:00
21年会员
UID 35249
性别 男
来自 上海
状态 离线
正常自己做的CEditor解释器:cl 12.0链接器:linker 6.0
论坛跳转: