unsigned 和 signed 的比較 (怪)

unsigned int i=1;
int j=-1
if(i>j) printf(“i>j”);
else printf(“j>i);

用VS2008 C++竟然出現 j>i。

uint i=1;
j=-1;
if(i>j) Console.Write(“i>j”);
else Console.Write(“j>i);

這次用C#就印出正常的 i>j。

Luse Cheng - Nov. 2, 2009 - Delete

C# 跟 C 遇到這種狀況的處理是不太一樣
如果是C 的話 依ISO C99 的 Rule 這樣的狀況 j>i 的確是符合Spec的
如果是C#的話 在Spec內提到這種狀況應該做promotion 所以會有這樣的結果也是對的

留言

這個網誌中的熱門文章

好貴的東元冷氣維修--馬達啟動電容

台大醫院 婁培人 耳鼻喉科 就診

機車無法充電之整流器壞掉--$650