Tôi chạy qua vấn đề này rất nhiều. Ví dụ, tôi hiện đang viết một hàm đọc và một hàm ghi và cả hai đều kiểm tra xem đó có phải buf
là con trỏ NULL không và mode
biến đó có nằm trong một số ranh giới nhất định không.
Đây là sao chép mã. Điều này có thể được giải quyết bằng cách di chuyển nó vào chức năng riêng của nó. Nhưng tôi có nên không? Đây sẽ là một chức năng thiếu máu khá (không làm được gì nhiều), thay vì cục bộ (vì vậy không phải mục đích chung) và không thể tự đứng vững (không thể tìm ra bạn cần nó ở đâu trừ khi bạn thấy nó ở đâu đã sử dụng). Một tùy chọn khác là sử dụng macro, nhưng tôi muốn nói về các chức năng trong bài viết này.
Vì vậy, bạn nên sử dụng một chức năng cho một cái gì đó như thế này? Những ưu và khuyết điểm là gì?