全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2298
推到 Plurk!
推到 Facebook!

Case語句中常量越界

缺席
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-07-21 12:49:44 IP:219.133.xxx.xxx 未訂閱

var
AEmun: Int64;
begin
//...

case AEmun of
$100800f4211: showmessage('f');
$100800f4611: showmessage('s');
$100800e4211: showmessage('t');
end;

//....

上面這段代碼在Delphi 7 中編譯出錯,提示[Error] MainUnt.pas(640): Constant expression violates subrange bounds

但在Delphi 2006中卻可以編譯通過了,只是提示警告信息[Pascal Warning] Unit8.pas(65): W1012 Constant expression violates subrange bounds

Why?

------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-07-25 11:11:06 IP:60.248.xxx.xxx 未訂閱

我在BDS2006可編譯過,

D7我把高位元部份遮掉

[code]

var
AEmun: Int64;
begin
AEmun:=$100800f4611;
// ShowMessage(IntToHex(AEmun xor $10080000000,6));
case AEmun xor $10080000000 of
$f4211: showmessage('f');
$f4611: showmessage('s');
$e4211: showmessage('t');
end;
end;

[/code]

系統時間:2024-04-27 3:16:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!