JavaScript is required

Preprocessor #define macro and inline functions use the same mechanism.

A.
TRUE
B.
FALSE
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