0
16位溢出我都必須使用該腳本添加數字:如何檢測與CCS
for(i=1; i<1000 ;i++)
sum=sum+i;
便會溢出32768,之後將變爲-32768,因爲它不能超過16位的限制。
我想用int來計數溢出c。
感謝
16位溢出我都必須使用該腳本添加數字:如何檢測與CCS
for(i=1; i<1000 ;i++)
sum=sum+i;
便會溢出32768,之後將變爲-32768,因爲它不能超過16位的限制。
我想用int來計數溢出c。
感謝
您可以檢查是否總和>總和+我
這隻適用於無符號類型。對於簽名類型,溢出的結果是未定義的。有些編譯器使用這些知識總是在y已知是正數時將'x + y> x'優化爲真。 http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html#signed_overflow – Art
這很有道理。也許最好檢查一下'INT_MAX - sum jhnesk