首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

编程预警:打埋伏在无符号整数中的危机

2012-09-02 
编程预警:潜伏在无符号整数中的危机最近几天在写代码的时候,一不小又掉进一个老相识的陷阱里,好生惨痛。曾

编程预警:潜伏在无符号整数中的危机

最近几天在写代码的时候,一不小又掉进一个老相识的陷阱里,好生惨痛。曾经告诫过自己,曾经提示过别人,但还是防不胜防。

看看代码样例吧。在最开始,我写了类似这样的一个for循环。

typedef unsigned int UINT;UINT i = 0;UINT myData[3];for (i = 0; i < 3; i++){myData[i] = i;…}

后来由于算法的需要,我觉得循环的方向需要调换一下,于是,想当然地就顺手改成下边的代码,结果就杯具了。

for (i = 2; i >= 0; i- -){myData[i] = i;…}

各位应该已经猜到杯具的结果是怎样的。悔不该自己欠手,非要很臭美地用一个无符号整数作循环变量。各位看官今后也要小心了,须知这无符号整数中潜伏着危机,特别是在作循环变量的时候,格外危险。

热点排行