Mặc dù tôi đã viết mã C / C ++ trong một thời gian dài, những hạn chế chưa từng thấy về cách sử dụng bộ nhớ trên các nền tảng lập trình MCU và SOC khác nhau thường làm tôi vấp ngã. Khi tôi chuẩn bị xây dựng mã cho dự án lớn đầu tiên của mình cho các bảng NANO, có khả năng sẽ sử dụng một lượng tài nguyên hợp lý, tôi muốn chuẩn bị tốt hơn cho bất kỳ "vấn đề bất ngờ" bất ngờ và bất ngờ nào để tìm ra .
Ví dụ, trên một SOC khác mà gần đây tôi đã làm việc trên phạm vi rộng (The Pololu.com wixel), tôi đã rất ngạc nhiên khi biết rằng các đối số hàm / phương thức và các biến tự động, mà tôi thường mong đợi được phân bổ và phục hồi khi hàm trả về trong thực tế phân bổ vĩnh viễn cho cuộc sống của chương trình! Ồ Vì vậy, trên nền tảng đó, nơi tôi thường ghét "làm việc quá sức" hoặc sử dụng lại các biến sau khi tên của chúng không còn ý nghĩa, tôi đã phải điều chỉnh mã hóa của mình thành những gì tôi thường coi là BAD để dễ đọc. Không đề cập đến việc nhận ra rằng các biến vòng lặp đơn giản được phân bổ tốt hơn trên toàn cầu. Yecch!
Những người bạn đã gặp phải các vấn đề mã hóa bất ngờ như vậy trong môi trường Arduino có thể chia sẻ một số hướng dẫn "đặc biệt" về những thứ như thế này không?
auto
đã thay đổi từ một công cụ xác định thời lượng lưu trữ thành một công cụ xác định loại biến trong C ++ 11. Để đơn giản, đừng sử dụngauto
.