Trước khi đi vào chủ đề chính của bài viết là Sự khác nhau giữa Inline function và Macro trong C thì chúng ta sẽ ôn lại 2 khái niệm Macro và Inline function để có thể hiểu rõ hơn giữa Inline function và Macro.
Macro – được dùng để chỉ những hàm được viết ở phần Preprocessor, thay vì đặt nó vào trong phần thực thi của file nguồn. Ngoài ra khi nói đến macro có 1 nghĩa khác nữa, ám chỉ đến tất cả những phần định nghĩa được viết trong phần Preprocessor
Inline function (hàm nội tuyến) – là một loại hàm trong ngôn ngữ lập trình C/C++. Với việc sử dụng từ khoá inline, hàm này được sử dụng để đề nghị (không phải là bắt buộc) với compiler (trình biên dịch) thực hiện inline expansion (khai triển nội tuyến) với hàm đó hay nói cách khác là chèn code của hàm đó tại địa chỉ mà nó được gọi.
Sự khác nhau giữa macro và inline:
Macro trong C:
1. Preprocessor simply perform text substitution.
2. Macro does not perform type checking / arguments etc.
3. Nothing is done with memory assignment for micro.
Inline trong C:
1. During compilation function call is replaced by the inline function reducing function call overhead.
2. Type checking in performed.
3. Default storage is in symbol table , until forced to occupy storage , such as by taking its address.
Nếu bạn đã hiểu khái niệm Macro và Inline sau khi đọc bài viết này thì chắc cũng sẽ hiểu sự khác nhau giữa chúng. Bạn nào còn chưa hiểu có thể bình luận bên dưới oktot sẽ giải đáp thắc mắc của bạn!