next up previous contents
Next: 字元 char Up: 資料型態 Previous: 變數   Contents

溢位

  1. 資料型態使用的 bytes 數限制了數值的範圍,超過了範圍值就是溢位 (overflow)。
  2. 範例: short 的最大值 32767
    [dywang@dyw219 zzz]$ vim overflow1.c
    [dywang@dyw219 zzz]$ cat overflow1.c
    #include <stdio.h>
    
    main() {
    	short a, b=32767;
    	a = b + 1;
    	printf("32767 + 1 = %d\n", a);
    }
    
  3. 編譯成功
    [dywang@dyw219 zzz]$ gcc -o overflow1 overflow1.c
    
  4. 執行結果對嗎?
    [dywang@dyw219 zzz]$ ./overflow1 
    32767 + 1 = -32768
    



De-Yu Wang 2019-08-14