Trước hết, xin lưu ý rằng C11 3.4.3, giống như tất cả các ví dụ và ghi chú chân, không phải là văn bản quy phạm và do đó không liên quan đến trích dẫn!
Văn bản có liên quan nói rằng tràn số nguyên và số float là hành vi không xác định là:
C11 6.5 / 5
Nếu một điều kiện ngoại lệ xảy ra trong quá trình đánh giá biểu thức (nghĩa là, nếu kết quả không được xác định theo toán học hoặc không nằm trong phạm vi giá trị đại diện cho loại của nó), thì hành vi không được xác định.
Một cách làm rõ về hành vi của các loại số nguyên không dấu đặc biệt có thể được tìm thấy ở đây:
C11 6.2.5 / 9
Phạm vi của các giá trị không âm của loại số nguyên đã ký là một phạm vi con của loại số nguyên không dấu tương ứng và biểu diễn của cùng một giá trị trong mỗi loại là như nhau. Một tính toán liên quan đến toán hạng không dấu không bao giờ có thể tràn, bởi vì một kết quả không thể được biểu thị bằng loại số nguyên không dấu kết quả được giảm modulo số lớn hơn một giá trị lớn nhất có thể được biểu thị bằng loại kết quả.
Điều này làm cho các kiểu số nguyên không dấu là một trường hợp đặc biệt.
Cũng lưu ý rằng có một ngoại lệ nếu bất kỳ loại nào được chuyển đổi thành loại đã ký và giá trị cũ không còn có thể được biểu diễn. Hành vi sau đó chỉ đơn thuần là xác định thực hiện, mặc dù tín hiệu có thể được đưa ra.
C11 6.3.1.3
6.3.1.3 Số nguyên đã ký và không dấu
Khi một giá trị với loại số nguyên được chuyển đổi sang loại số nguyên khác ngoài _Bool, nếu giá trị có thể được biểu thị bằng loại mới, nó không thay đổi.
Mặt khác, nếu loại mới không được ký, giá trị được chuyển đổi bằng cách lặp lại hoặc trừ đi nhiều hơn một giá trị tối đa có thể được biểu thị trong loại mới cho đến khi giá trị nằm trong phạm vi của loại mới.
Mặt khác, loại mới được ký và giá trị không thể được biểu diễn trong đó; hoặc kết quả là xác định thực hiện hoặc tín hiệu xác định thực hiện được đưa ra.