2012-10-18 63 views
11

Tôi đang đọc một số hướng dẫn về lập trình được nhúng và một trong số chúng cho biết intsigned int khác nhau nhưng không giải thích cách thức hoặc lý do.Sự khác biệt giữa khai báo int và int đã ký

Tôi hiểu lý do tại sao unsigned intint khác nhau nhưng intsigned int là khác nhau là một hình thức mới cho tôi.

+2

Điều đó cũng mới đối với tôi. Hướng dẫn có trực tuyến không? Nếu vậy, một liên kết sẽ được nhiều đánh giá cao. –

Trả lời

13

Chỉ vì lý do lịch sử. Hôm nay, bất cứ khi nào bạn khai báo int, bạn sẽ nhận được signed int. Điểm duy nhất mà bạn có thể thấy sự khác biệt ngay cả với trình biên dịch ngày nay là với char so với signed char khác nhau theo đặc điểm kỹ thuật (và đáng chú ý khi gán chuỗi chữ) nhưng không phải với int.

+0

sự khác nhau giữa char và char ký kết là gì? Bạn có thể đưa ra một ví dụ không? – Anon

+2

@Anon - có nghĩa là, đó là _undefined_ cho dù 'char' là' signed' hoặc 'unsigned' theo mặc định. Tiêu chuẩn không nói gì về điều này. –

+0

@Kiril, cảm ơn. +1 từ tôi. Đơn giản và đơn giản. – Anon

2

Theo như tôi biết sự khác biệt chỉ tồn tại đối với loại dữ liệu char. Trong đó char a; có thể là signed char a; hoặc unsigned char a; tùy thuộc vào tùy chọn trình biên dịch. Như this article nói. (--signed_chars) Đối với loại dữ liệu int, không có sự khác biệt giữa intsigned int.

+0

+1, chấp nhận câu trả lời của Eznme vì anh/cô ấy đã trả lời trước đó và giống như câu trả lời của bạn. – Anon

+1

'char' không bao giờ là kiểu giống như' unsigned char' hoặc 'signed char', mặc dù nó có cùng phạm vi và biểu diễn như một trong số chúng. –

+0

@SteveJessop Bạn có thể giải thích thêm hoặc chỉ cho tôi một nơi nào đó tôi có thể đọc về nó? – CCoder

Các vấn đề liên quan