Tôi đang làm việc trên một ứng dụng nhúng trung bình trong C bằng các kỹ thuật tương tự OO. Các "lớp" của tôi là các mô đun .h / .c sử dụng các cấu trúc dữ liệu và các cấu trúc con trỏ hàm để mô phỏng đóng gói, đa hình và tiêm phụ thuộc.
Bây giờ, người ta sẽ mong đợi một myModule_create(void)
chức năng đi kèm với một myModule_destroy(pointer)
đối tác. Nhưng dự án đang được nhúng, các tài nguyên được khởi tạo thực tế không bao giờ nên được phát hành.
Ý tôi là, nếu tôi có 4 cổng nối tiếp UART và tôi tạo 4 phiên bản UART với các chân và cài đặt cần thiết của chúng, thì hoàn toàn không có lý do gì để muốn phá hủy UART # 2 tại một số điểm trong thời gian chạy.
Vì vậy, theo nguyên tắc YAGNI (Bạn sẽ không cần nó), tôi có nên bỏ qua các hàm hủy không? Điều này có vẻ cực kỳ lạ đối với tôi nhưng tôi không thể nghĩ ra cách sử dụng chúng; tài nguyên được giải phóng khi thiết bị tắt nguồn.
myModule_create(void)
chức năng? Bạn chỉ có thể mã hóa các trường hợp cụ thể mà bạn muốn sử dụng vào giao diện bạn trưng ra.