Có. Tất nhiên nó bị giới hạn bởi không gian địa chỉ của hệ thống của bạn. Nó cũng bị giới hạn bởi lượng không gian được phân bổ cho ngăn xếp bởi hệ điều hành của bạn, thường không thể thay đổi sau khi chương trình của bạn khởi động nhưng có thể thay đổi trước đó (hoặc bằng tiến trình khởi chạy, hoặc bởi các thuộc tính của tệp thực thi). Trong nháy mắt, kích thước ngăn xếp tối đa trên hệ điều hành OS X của tôi là 8 MiB và trên Linux là 10 MiB. Trên một số hệ thống, bạn thậm chí có thể phân bổ một lượng ngăn xếp khác nhau cho mỗi chủ đề khác nhau mà bạn bắt đầu, mặc dù điều này là hữu ích hạn chế. Hầu hết các trình biên dịch cũng có một giới hạn khác về số lượng chúng sẽ cho phép trong một khung ngăn xếp duy nhất.
Trên máy tính để bàn hiện đại, tôi sẽ không lo lắng về phân bổ ngăn xếp 1k trừ khi chức năng được đệ quy. Nếu bạn đang viết mã nhúng hoặc mã để sử dụng bên trong một hạt nhân hệ điều hành, nó sẽ là một vấn đề. Mã trong hạt nhân Linux chỉ được phép 64 ngăn xếp KiB hoặc ít hơn, tùy thuộc vào tùy chọn cấu hình.
Nguồn
2010-01-28 06:17:02
Chọn 1024 là hoàn toàn tùy ý, biến 512 byte cũng có thể là "nguyên nhân gây lỗi". Và một biến 2048 byte không làm cho nó hai lần như khả năng. Thực hiện lời khuyên này với một pound muối. –