2010-08-05 33 views

Trả lời

15

Plain int cũng giống như signed cũng giống như signed int

+0

Trình biên dịch một số (tất cả?) Có công tắc để thay đổi mặc định thành unsigned. Trong MSVC, đó là/J. –

+1

FYI Trình biên dịch CCS cho bộ điều khiển PIC Microchip không được gán theo mặc định. Argh! – kenny

+9

Trình chuyển đổi trình biên dịch/J ảnh hưởng đến char, không phải int. "char" có thể hoặc không được ký. "char", "char đã ký" và "unsigned char" luôn là các loại riêng biệt, có hoặc không "char" được ký. –

2

int s được ký bởi mặc định.

12

C++ chuẩn 3.9.1/2:

Có bốn loại nguyên ký: “int dài” “ký char”, “int ngắn”, “int”, và < ...>

C++ chuẩn 3.9.1/3:

Đối với mỗi loại nguyên ký, có e xists một tương ứng (nhưng khác nhau) unsigned loại nguyên: “unsigned char”, “unsigned int ngắn”, “unsigned int”, và “unsigned long int ,” < ...>

Vì vậy, sizeof(int) bằng sizeof(unsigned). Nhưng boost::is_same< int, unsigned >::value là sai.

+1

+1 để trích dẫn Chuẩn. – Cumbayah

1

signed int cũng giống như int và chỉ định giá trị số nguyên có thể có cả giá trị dương và âm. Mặt khác, chỉ có giá trị dương lớn nhất lớn hơn nhiều so với giá trị signed int.

+0

Trên thực tế phạm vi * của các giá trị chính xác là cùng một kích thước, nó chỉ được dịch chuyển sao cho giá trị nhỏ nhất là 0. –

+0

Bạn nói đúng, đó là một sự lựa chọn kém của từ. Đã sửa lỗi;) –

3

ints được ký theo mặc định, là longs.

Vì vậy, int, signedsigned int là giống nhau.

Tương tự longsigned long giống nhau. Mặt khác,

chars không có giá trị mặc định. Việc triển khai có thể xem xét chúng được ký hoặc chưa ký (nhiều người có một công tắc dòng lệnh để chọn). char, signed charunsigned char được coi là ba loại riêng biệt cho độ phân giải quá tải, bản dịch mẫu và các địa điểm khác.

+0

Câu cuối cùng quá hạn chế. Nó không chỉ là độ phân giải quá tải, nó ở khắp mọi nơi. Ví dụ. cũng như các đối số mẫu.Do đó 'std :: vector ' là cùng loại với 'std :: vector ', nhưng 'std :: vector ' là ** không ** cùng loại với 'std :: vector ' – MSalters

+0

@MSalters: Điểm tốt, cập nhật. –

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