【发布时间】:2011-05-25 01:57:34
【问题描述】:
假设我有一个 C 脚本并声明了一些 unsigned int。然后,我编写了一个 while 循环,它会自动增加这些值并将它们打印出来:在用户从命令行停止之前没有限制。一旦我达到一个非常高的数字(20 亿),计算机就会从 -20 亿开始计数。我怎样才能防止这种情况?看,我可以轻松地输入,比如说“99999999999999”而不会导致任何崩溃:为什么我不能在我的 32 位终端上执行此操作?我已经尝试过 long long int、signed 和 unsigned 但我仍然有这个问题。截图如下:http://img577.imageshack.us/img577/6558/schermata20110524a01012.png
谢谢, J.
【问题讨论】:
-
C 不是一种脚本语言。 ;)
-
您可能正在使用未签名的存储空间,但您将其打印为已签名。如果您使用 printf,请使用 %u 而不是 %i 或 %d。