在定義整數變數的型態的時候可以加上 unsigned 或是 signed, 例如 unsigned char unsigned short (int) unsigned long (int) unsigned int ---------- signed char signed short (int) signed long (int) signed int -------------- 上面 signed 有加和沒有加是一樣的意義 加上 unsigned 以後, 1. 所需要的資料儲存空間和沒有加 unsigned 時是一樣的 2. 在使用 printf() 列印時基本上你必須分清楚 unsigned 有影響到的是參數的傳遞, 使用 %d 或是 %u 基本上是看程式設計者自己的選擇 int i=-1; printf("%d %u\n", i, i); 會印出 -1 4294967295 unsigned int i=-1; printf("%d %u\n", i, i); 也會印出 -1 4294967295 char i=-1; printf("%d %u\n", i, i); 還是會印出 -1 4294967295 但是 unsigned char i=-1; printf("%d %u\n", i, i); 則會印出 255 255 這不是 %d 和 %u 的問題, 而是 參數傳遞時資料轉換的問題 (見下面第 3 項)
|
沒有留言:
張貼留言