一个unsigned int(size_t)的坑
[| 2012/03/07 22:24]
前几天把一个函数的返回值由int改为size_t了。当时心想就是改个类型的问题,逻辑没啥要动的。反正都是算数。
编译器什么也没报。似乎没什么问题。
后来凑巧又改了一下另外一个程序的相同函数,结果编译的时候报了error,说试图转换-1到unsigned。一检查,果然程序中的异常分支返回了-1.急忙改了过来。
所以在返回值是size_t类型的函数中,异常处理要注意。(主要是c程序,因为没有异常)
编译器什么也没报。似乎没什么问题。
后来凑巧又改了一下另外一个程序的相同函数,结果编译的时候报了error,说试图转换-1到unsigned。一检查,果然程序中的异常分支返回了-1.急忙改了过来。
所以在返回值是size_t类型的函数中,异常处理要注意。(主要是c程序,因为没有异常)