Sự khác biệt giữa Inline và Macro

Nội tuyến vs Macro

C ++ đã đi quá xa trong lĩnh vực lập trình máy tính ngày nay. Là một ngôn ngữ mạnh mẽ, đôi khi nó gây ra một chút khó hiểu cho các lập trình viên vì thư viện chức năng khổng lồ của nó. Hàm nội tuyến là một trong số chúng có thể dễ bị nhầm lẫn với các macro trong ngôn ngữ.
Không phải là có một sự khác biệt nhỏ giữa hai người, nhưng họ có thể hơi khó hiểu vì các thuộc tính họ nắm giữ. Trong bài viết này, chúng tôi sẽ thảo luận thêm về sự khác biệt giữa hàm nội tuyến và macro trong C++.

Nội tuyến
Một hàm nội tuyến cũng giống như bất kỳ chức năng nào khác trong C ++ và cũng được gọi theo cách thông thường. Hàm nó thực hiện là nó tạo ra một bản sao của định nghĩa hàm đã biên dịch. Đó là, nó tạo ra một bản sao của các mục được xác định để biên dịch. Một ví dụ có thể được lấy nếu chúng ta thêm bất kỳ hai số nguyên nào và gọi nó là hàm nội tuyến, trình biên dịch sẽ tạo một bản sao của các số nguyên sẽ được biên dịch.
Thí dụ:

Nội tuyến int sum (int x, int y)

Trả về (x + y);

Vĩ mô
Macro trong C ++ thực hiện thay thế văn bản trong một dòng chương trình. Đó là, họ thay thế văn bản theo sự thay đổi được xác định trong hàm. Không giống như nội tuyến như một hàm, macro thao tác mã bằng cách sử dụng hàm. Ví dụ:
#define NHÂN ĐÔI (X) X * X

int y = 5;
int j = NHÂN ĐÔI (++ y);

Ở đây, chúng tôi sẽ nhận được giá trị là 30! Vì cuộc gọi đã được thực hiện thông qua một macro, nên X X đã được thay thế bằng ++ y, điều này làm cho ++ y được nhân với một ++ y khác. Điều này làm cho tổng cộng 5 * 6 là 30 chứ không phải 6. Sáu sẽ là câu trả lời cơ bản nhưng sai.

Bây giờ, macro có thể gây ra lỗi ở đây. Vì vậy, một hàm nội tuyến giải cứu bằng cách sao chép các giá trị vào bộ nhớ của trình biên dịch và sau đó biên dịch nó.

Tóm lược:

1. Một hàm nội tuyến tạo một bản sao của định nghĩa hàm.
2.Một macro thay thế văn bản như được xác định và xác định trong hàm.
3. Một chức năng nội tuyến cũng được áp dụng khi macro được cho là gây ra lỗi trong chương trình.