2013-05-13 30 views
8

Tôi muốn sử dụng biến số u_int64_t làm khóa tìm kiếm,Có u_int64_t trên máy 32 bit không?

u_int64_t có sẵn trên máy 32 bit?

nếu không, tôi phải chia biến này thành hai biến thể? sau đó làm khóa tìm kiếm, có một chút rắc rối hơn

có cách giải quyết nào cho vấn đề này không?

+6

@ thư giãn [edit] của bạn (http://stackoverflow.com/posts/16521066/revisions) là rất xâm nhập. OP có thể nhầm lẫn về việc đặt tên đúng loại. Sự nhầm lẫn này nên được giải quyết trong các câu trả lời hoặc bình luận, chứ không phải bằng cách im lặng chỉnh sửa câu hỏi! Ngoài ra, bạn đã xóa toàn bộ một đoạn không có lý do chính đáng. Vui lòng hoàn nguyên chỉnh sửa của bạn. – user4815162342

+3

@ user4815162342 Được rồi, cảm ơn vì đã chỉ ra điều đó. Tôi đoán tôi đã không nhận thức được có một loại thực tế đánh vần như vậy, vì vậy tôi cho rằng đó là một lỗi đánh máy. Cũng nhờ Grijesh (tôi đoán) để thực sự hoàn nguyên bản chỉnh sửa. – unwind

Trả lời

9

Loại tích phân 64 bit không dấu không được đảm bảo theo tiêu chuẩn C, nhưng thường có sẵn trên máy 32 bit và trên hầu hết tất cả các máy chạy Linux. Khi có mặt, loại sẽ được đặt tên là uint64_t (lưu ý một dấu gạch dưới ít hơn) và được khai báo trong tệp tiêu đề <stdint.h>.

+0

Một số nguyên không dấu 64 bit rộng nhất được đảm bảo có sẵn dưới tên 'uintleast64_t' (typedef in' ') và' unsigned long long'. – rubenvb

+0

@rubenvb: Lưu ý rằng 'long long' là * được phép * thành * lớn hơn * 64 bit. – DevSolar

+3

Nhận xét của @DevSolar rubenvb có nghĩa là "** ít nhất ** rộng 64 bit". Mặt khác, OP có khả năng chỉ muốn loại 64 bit và không quan tâm đến kiến ​​trúc hiếm có có thể hỗ trợ loại rộng hơn mà không hỗ trợ chính xác 64 bit. – user4815162342

5

Có kiểu dữ liệu số nguyên 64 bit được hỗ trợ trên máy 32 bit.

Trong tiêu chuẩn C89, loại dài (≥ 64, ≥ dài) được hỗ trợ dưới dạng GNU extension. Trong tiêu chuẩn C99, có native support cho số nguyên dài (≥ 64, ≥ dài).

+0

Lưu ý rằng 'long long' là * được phép * thành * lớn hơn * 64 bit. – DevSolar

+0

Vâng, bạn có quyền lâu dài có thể được nhiều hơn 64bits rộng (mặc dù hiếm), nhưng cảm ơn cho việc sửa chữa :) –

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