Nội tuyến và macro là các chức năng được sử dụng trong lập trình máy tính C++ và C. Chủ yếu là chức năng nội tuyến được sử dụng nhiều hơn một macro.
Các nội dung chính
- Các hàm nội tuyến được mở rộng tại thời điểm biên dịch, trong khi bộ tiền xử lý mở rộng các macro trước khi biên dịch.
- Các chức năng nội tuyến cung cấp loại an toàn và thực hiện chuyển đổi loại tự động, trong khi macro thì không.
- Macro có thể gây ra tác dụng phụ do nhiều lần đánh giá, trong khi các hàm nội tuyến thì không.
Nội tuyến so với Macro
Inline là một hàm bình thường được định nghĩa bởi từ khóa inline và có thể dễ dàng truy cập các thành viên của lớp để cải thiện hàm. Macro được định nghĩa bởi từ khóa #define và mặc dù nó thuộc về ngôn ngữ C và C++, nhưng nó được sử dụng trong ngôn ngữ trước. Nó dễ bị lỗi nhưng linh hoạt.

Inline là một chức năng bình thường. Chức năng được xác định bởi từ khóa nội tuyến. Nó có thể dễ dàng truy cập các thành viên của lớp. Nó cải thiện chức năng.
Macro được xác định bởi từ khóa #define. Nó gần như không bao giờ được sử dụng trong C++ và nó được sử dụng nhiều hơn trong ngôn ngữ C. Chúng linh hoạt hơn nhưng dễ mắc lỗi.
Bảng so sánh
Các thông số so sánh | Nội tuyến | Macro |
---|---|---|
Định nghĩa | Nội tuyến là một chức năng thông thường được sử dụng trong ngôn ngữ C++ được xác định bởi từ khóa “Inline”. | Macro là một hàm được sử dụng trong ngôn ngữ C được định nghĩa bằng từ khóa “#define”. |
Quyền truy cập của các thành viên trong lớp | Có thể dễ dàng truy cập các thành viên của lớp. | Không thể truy cập các thành viên của lớp. |
Debugged | Chương trình có thể dễ dàng gỡ lỗi. | Chương trình không thể dễ dàng gỡ lỗi. |
Xác định ở đâu? | Dù ở trong hay ngoài lớp. | Ở đầu chương trình. |
Chấm dứt hợp đồng | Nó được kết thúc bằng một ký hiệu, một dấu ngoặc nhọn ở cuối. | Nó được kết thúc bởi một dòng mới chứ không phải là một biểu tượng. |
Nội tuyến là gì?
Nội tuyến là một hàm bình thường được sử dụng trong ngôn ngữ lập trình máy tính C++. Nó được xác định bởi từ khóa nội tuyến.
Hàm có thể được định nghĩa bên trong hoặc bên ngoài lớp. Và có thể được kết thúc bằng ký hiệu của dấu ngoặc nhọn.
Khi hàm được gọi, nó sẽ lưu phần hoạt động của các biến Push/pop trên ngăn xếp và cũng lưu phần hoạt động của lệnh gọi trả về từ một hàm.
Đối số, trong trường hợp hàm nội tuyến, chỉ được đánh giá một lần và các chuyển đổi bắt buộc được trình bày chính xác. Chức năng này không được sử dụng rộng rãi, chủ yếu được sử dụng trong ngôn ngữ C++ nhưng không bắt buộc trong lập trình cạnh tranh.
Micro là gì?
Macro được mở rộng bởi một bộ tiền xử lý trong một chương trình, do đó, nó còn được gọi là chỉ thị tiền xử lý. Chức năng này được xác định bởi từ khóa “#define”.
Macro có thể được mở rộng bất kể thực tế là chúng có đúng về mặt cú pháp hay không. Từ các vấn đề về mở rộng macro, giai đoạn biên dịch chức năng macro sẽ dẫn đến lỗi báo cáo.
Và nó không thể được gỡ lỗi một cách dễ dàng. Thật vậy, nó có thể gây ra một số tác dụng phụ do sự mở rộng khi các biểu thức đầu vào được sao chép ở mọi nơi chúng xuất hiện trong mẫu.
Sự khác biệt chính giữa Nội tuyến và Macro
- Nội tuyến hầu như không bao giờ được sử dụng trong lập trình cạnh tranh, trong khi mặt khác, Macro được sử dụng rộng rãi trong lập trình cạnh tranh.
- Các đối số trong trường hợp nội tuyến chỉ được đánh giá một lần, trong khi đối với macro, các đối số được đánh giá mỗi khi hàm macro được sử dụng trong chương trình.