重複の可能性:
Linux/bash でのプログラムの戻り値の有効な範囲は?
以下は単純な c プログラムです。
#include <stdio.h>
int main(){
int a=0, b=100;
while(a<=b){
printf("%d\n",a);
a+=10;
}
return a;
}
Linux で戻り値を確認すると 110 が返されます。これは、プログラムで評価される最後の式が a に 110 を代入するためです。しかし、b=100 を 256 より大きい値に置き換えると、b=260 となります。戻り値は 14 であり、予想された 270 ではありません。main が 256 をはるかに超える範囲の整数を返すことになっているのに、戻り値が 256 にラップするのはなぜですか?