Trả lời:
Đáp án đúng: B
Câu trả lời là SAI. Macro #define và inline functions sử dụng các cơ chế khác nhau.
* **Macro #define:** Đây là một chỉ thị tiền xử lý. Trình tiền xử lý (preprocessor) sẽ thay thế tất cả các lần xuất hiện của macro bằng định nghĩa của nó trước khi quá trình biên dịch thực sự bắt đầu. Quá trình thay thế này chỉ là thao tác tìm kiếm và thay thế văn bản đơn thuần.
* **Inline functions:** Đây là các hàm thực sự, nhưng trình biên dịch được hướng dẫn (thông qua từ khóa `inline`) để chèn trực tiếp mã của hàm vào nơi hàm được gọi, thay vì thực hiện một lệnh gọi hàm thông thường. Việc này giúp tránh được chi phí gọi hàm, nhưng có thể làm tăng kích thước mã.
Điểm khác biệt chính:
* **Xử lý kiểu dữ liệu:** Inline functions có kiểm tra kiểu dữ liệu (type checking) trong khi macro thì không. Macro chỉ thực hiện thay thế văn bản, do đó có thể dẫn đến các lỗi khó phát hiện nếu sử dụng không cẩn thận.
* **Debug:** Debug inline functions dễ dàng hơn debug macro.
* **Kích thước mã:** Sử dụng inline functions có thể làm tăng kích thước mã, đặc biệt nếu hàm được gọi nhiều lần. Macro cũng có thể làm tăng kích thước mã nếu biểu thức được thay thế trong macro dài.
* **Tính linh hoạt:** Inline functions linh hoạt hơn macro, vì chúng có thể có các tham số và giá trị trả về, trong khi macro chỉ là các thay thế văn bản.
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
