無號整數&有號整數溢位行為(運用limits.h)

當溢位時,可用limits.h來提供最大值資訊

#include<stdio.h>
#include<limits.h>

int main(){
printf("%d\n",INT_MAX);
printf("%d\n\n",INT_MIN);
unsigned int a=1000;
unsigned int b=a*a*a;
unsigned int c=a*a*a*a;
printf("%u\n",b); // 等於10000000000000 % (UNIT_MAX+1)
printf("%u\n",c);
printf("%u\n",UINT_MAX);
return 0;
}//無號整數溢位不是未定義行為
//但有號整數溢位則是未定義行為

留言