"tự động" thực tế có nghĩa là "người tham gia lại". Bản thân thuật ngữ bị đánh cắp từ ngôn ngữ phần mềm - ví dụ, C có từ khóa "tự động" để khai báo các biến khi được cấp phát trên ngăn xếp khi phạm vi của nó được thực thi và sau đó được deallocated, để nhiều lời gọi cùng phạm vi không thấy giá trị liên tục của biến đó. Lý do bạn có thể không nghe nói về từ khóa này trong C là nó là lớp lưu trữ mặc định cho tất cả các loại :-) Các lựa chọn thay thế là "tĩnh", có nghĩa là "phân bổ biến này tĩnh (đến một vị trí toàn cục duy nhất trong bộ nhớ), và tham khảo cùng một vị trí bộ nhớ trong suốt quá trình thực hiện chương trình, bất kể hàm được gọi là bao nhiêu lần ", và" dễ bay hơi ", có nghĩa là" đây là một đăng ký ở đâu đó trên SoC của tôi hoặc thứ gì đó trên thiết bị khác mà tôi không có kiểm soát, trình biên dịch, xin vui lòng không tối ưu hóa đọc cho tôi đi, ngay cả khi bạn nghĩ rằng bạn biết giá trị của tôi từ lần đọc trước đó với không có viết trung gian trong mã ".
"tự động" dành cho các hàm đệ quy, nhưng cũng để chạy cùng một hàm trong các chuỗi thực thi khác nhau đồng thời. Ví dụ, nếu bạn "ngã ba" khỏi N khối khác nhau (sử dụng câu lệnh join-> của Verilog), và tất cả chúng đều gọi hàm giống nhau cùng một lúc, cùng một vấn đề phát sinh như một hàm gọi chính nó một cách đệ quy.
Trong nhiều trường hợp, mã của bạn sẽ tốt mà không khai báo tác vụ hoặc chức năng là "tự động", nhưng thực hành tốt là đặt nó vào đó trừ khi bạn cần nó khác.
Nguồn
2008-09-19 05:42:01