1
CHAR_MAXに設定されたchar値は、CHAR_MINにラップアラウンドすることが保証されていますか?
私のコード: #include <stdio.h> #include <limits.h> int main() { char c = CHAR_MAX; c += 1; printf("CHAR_MIN=%d CHAR_MAX=%d c=%d (%c)\n", CHAR_MIN, CHAR_MAX, c, c); } 出力: CHAR_MIN=-128 CHAR_MAX=127 c=-128 () char変数セットをにインクリメントするとCHAR_MAX、に戻りCHAR_MINます。この動作は保証されていますか?それとも、未定義の動作または実装固有の動作になりますか?C99標準はこれについて何と言っていますか? [注:charまたはCにCHAR_MAX(127)より大きい値を指定するとどうなりますか。charc = 129が-127に変換されるのはなぜですか?彼らは範囲外の値に値を増分するのではなく範囲外の値を割り当てることについて話しているので、この質問には触れません。]