溢出:指給某個變量賦值時,超出了該類型變量所能表達的範圍,比如:
unsigned char a;
a = 260;//a的取值範圍是0~255,使a=260就會導致數據溢出,a最終得到的是一個錯誤的值;
飽和:指給某個變量賦值時,超出了該類型能表達的範圍,如果採取飽和策略,就會讓該變量等於一個最大值或者最小值,比如:
unsigned char a;
a = 260;//a溢出了,如果採取飽和策略則a的最終結果是255
截斷:指給某個變量賦值時,超出了該類型能表達的範圍,如果採取截斷策略,則變量只保留數據中低字節的數據,高字節的數據則會丟棄,比如
unsigned char a;
a = 260;//如果採取截斷策略,260 = 0x0104,則a的最終結果是4;
這裏強調一下,c語言中數據發生溢出後,默認採取的是截斷策略。