Thường có những lúc bạn biết thực tế là vòng lặp của bạn sẽ không bao giờ chạy nhiều hơn x số lần x có thể được biểu diễn bằng byte hoặc ngắn, về cơ bản là kiểu dữ liệu nhỏ hơn int.Tại sao số nguyên luôn được sử dụng làm biến kiểm soát trong vòng lặp for?
Tại sao chúng tôi sử dụng int trong đó chiếm 32 bit (với hầu hết các ngôn ngữ) khi một cái gì đó giống như một byte sẽ đủ mà chỉ là 8 bit.
Tôi biết chúng tôi có quy trình 32 bit và 64 bit để chúng tôi có thể dễ dàng tìm nạp giá trị trong một chuyến đi nhưng nó vẫn tiêu thụ nhiều bộ nhớ hơn. Hoặc tôi đang thiếu gì ở đây?
CẬP NHẬT: Chỉ cần làm rõ. Tôi biết rằng tốc độ khôn ngoan không có sự khác biệt. Tôi hỏi về tác động của việc tiêu thụ bộ nhớ.
Thật sao? Hầu hết các mã tôi đã nhìn thấy sử dụng một số hình thức loại unsigned. –
@Billy Oneal: Trên một số vi xử lý nhúng, một loại không dấu có thể cung cấp hiệu suất tốt hơn so với một ký kết, với chi phí yêu cầu chăm sóc lớn hơn với logic chấm dứt vòng lặp. Mặt khác, nếu một bộ xử lý giống như ARM lưu trữ thứ gì đó giống như uint16 trong thanh ghi 32 bit, nó phải thêm mã phụ để 'clip' giá trị thành 16 bit. Không có mã như vậy sẽ là cần thiết với một int16 (vì bất cứ điều gì được phép xảy ra khi một int16 được gán một giá trị ngoài phạm vi -32768..32767, một trình biên dịch có thể chỉ để cho giá trị của nó làm bất cứ điều gì thuận tiện). – supercat
Bạn có tạo các bộ đếm vòng lặp đủ để thay đổi loại của chúng có hiệu ứng * nhìn thấy được trên bộ nhớ tiêu thụ không? Nếu vậy, sau đó tôi gửi cho bạn có vấn đề lớn hơn so với chỉ sử dụng một loại rộng hơn-cần thiết. –