今天写了这样的代码:
编译好了,跑了一下。怎么没有返回,看来死循环了。我左看右看,怎么回呢? 看了输出,
错误的配置参数项(255), Usage : -c <配置文件路径> -n <服务器名>
<重复无数次>
终于找到原因了,原来循环条件ch != -1永远都会成立。因为char在我用的机器上被当做unsigned的一种类型,取值为0-255, 将-1付给这样的数得到的结果就是255。哎,基本功不扎实啊,犯了低级错误。看来拿一个无符号型和有符号型比较,确实容易出错。
本文介绍了一个使用getopt处理命令行参数时出现的死循环问题。原因是char类型被误用为无符号类型,导致-1转换为255,进而使循环条件永远为真。文章强调了类型使用的重要性。
今天写了这样的代码:
编译好了,跑了一下。怎么没有返回,看来死循环了。我左看右看,怎么回呢? 看了输出,
错误的配置参数项(255), Usage : -c <配置文件路径> -n <服务器名>
<重复无数次>
终于找到原因了,原来循环条件ch != -1永远都会成立。因为char在我用的机器上被当做unsigned的一种类型,取值为0-255, 将-1付给这样的数得到的结果就是255。哎,基本功不扎实啊,犯了低级错误。看来拿一个无符号型和有符号型比较,确实容易出错。

被折叠的 条评论
为什么被折叠?