Kể từ C# hỗ trợ Int8
, Int16
, Int32
và Int64
, tại sao các nhà thiết kế của ngôn ngữ chọn để xác định int
như một bí danh cho Int32
thay vì cho phép nó thay đổi tùy theo những gì các kiến trúc bản địa coi là một word
?Trong C#, tại sao "int" là một bí danh cho System.Int32?
Tôi chưa có bất kỳ nhu cầu cụ thể nào đối với int
để hoạt động khác với cách thực hiện, tôi chỉ yêu cầu ra khỏi sở thích bách khoa toàn bộ. Tôi có thể nghĩ rằng kiến trúc RISC 64 bit có thể tồn tại một cách có hiệu quả, chỉ hỗ trợ hiệu quả nhất với số lượng 64 bit và trong đó các thao tác với số lượng 32-bit sẽ yêu cầu các hoạt động bổ sung. Một kiến trúc như vậy sẽ gây bất lợi cho một thế giới trong đó các chương trình khăng khăng sử dụng các số nguyên 32 bit, đó là một cách khác để nói rằng C#, trở thành ngôn ngữ của tương lai và tất cả, về cơ bản ngăn cản các nhà thiết kế phần cứng không bao giờ đến với một kiến trúc trong tương lai.
StackOverflow không khuyến khích suy đoán câu trả lời, vì vậy vui lòng chỉ trả lời nếu thông tin của bạn đến từ nguồn đáng tin cậy. Tôi đã nhận thấy rằng một số thành viên của SO là người trong Microsoft, vì vậy tôi đã hy vọng rằng họ có thể khai sáng cho chúng tôi về chủ đề này.
Lưu ý 1: Tôi đã làm trong thực tế đọc tất cả câu trả lời và tất cả các ý kiến của SO: Is it safe to assume an int will always be 32 bits in C#? nhưng không tìm thấy bất kỳ gợi ý để các tại sao rằng Tôi yêu cầu trong câu hỏi này.
Note 2: khả năng tồn tại của câu hỏi này trên SO là (inconclusively) thảo luận ở đây: Meta: Can I ask a “why did they do it this way” type of question?
Nếu bạn muốn có một "loại máy có kích thước từ", bạn đang tìm kiếm 'System.IntPtr'. –
Có, nhưng chúng tôi có xu hướng làm số học với 'int', không phải với 'IntPtr' s. –
Tại sao các downvotes ?? – gdoron