关于将-1转换为size_t导致卡住循环

时间:2014-02-17 01:29:47

标签: c size-t

关于glassdoor的访谈问题如下。据我所知,很难从中推断出任何东西。什么是合适的问题?

  

计算size_t数的宏。放入一个循环,它会抛出-1   到size_t数字,使循环无法启动。

正如Michael Aaron Safyan所建议的那样,可能是以下情况

以相反的方式运作:

  

for(size_t i = 0; i>((size_t)-1); i--){}

有关解释,请参阅答案

1 个答案:

答案 0 :(得分:2)

问题是size_t是无符号的,因此向其投射-1将产生最大值size_t。可以使用签名类型(例如intssize_t)修复此情况。