Hàm Nội Tuyến Trong C++ ( Inline Là Gì, Nghĩa Của Từ Inline

1. Định nghĩa

Inline function là một chức năng trong ngôn ngữ lập trình C++. Hàm inline là hàm được định nghĩa bằng từ khóa inline. Hàm inline được sử dụng để yêu cầu trình biên dịch (compiler) thay thế lời gọi hàm bằng toàn bộ mã code của hàm nhằm mục đích giảm thời gian chạy chương trình.

Đang xem: Inline là gì

Quá trình biên dịch một chương trình:

*

Hình 1: Quá trình biên dịch một chương trình

Hàm inline sẽ được trình biên dịch thực hiện thay thế vị trí gọi hàm bằng nội dung hàm inline (step 4).

Tại sao cần sử dụng hàm inline:Thông thường xử lý khi gặp hàm trong khi chạy chương trình, chương trình sẽ lưu địa chỉ bộ nhớ của các lệnh ngay sau khi câu lệnh gọi hàm, tải hàm được gọi vào bộ nhớ, sao chép giá trị đối số, nhảy đến vị trí bộ nhớ của hàm được gọi, thực thi mã chức năng, lưu giá trị trả về, trở lại địa chỉ của lệnh đã được lưu ngay trước khi thực hiện hàm được gọi.→ Việc này sẽ gây lãng phí tài nguyên đối khi chạy chương trình với các hàm ngắn chỉ gồm 1 vài câu lệnh (vì thời gian gọi hàm lớn hơn nhiều so với thời gian thực hiện mã hàm).

Xem thêm: Tải App Mod Skin Liên Quân Mùa 17 Mới Nhất, Mod Skin Liên Quân For Android

Xem thêm: Tải Game Thiện Nữ U Hồn Trên Pc, Hướng Dẫn Vào Game Bản Máy Tính

Vì vậy cần sử hàm inline sẽ tiết kiệm nhiều tài nguyên trong quá trình chạy chương trình.

2. Cách sử dụng

Để định nghĩa một hàm inline: đặt từ khóa “inline” ở phần đầu tiên của hàm.Cú pháp:

inline return_type function_name(param){…}vd

#include using namespace std; inline void hello() //declare inline function{ cout- Hàm inline được sử dụng khi:Trong chương trình, khi cần thời gian thực hiện ngắn (ưu tiên hiệu suất), và chắc chắn rằng việc sử dụng sẽ mang lại hiệu suất.Các hàm có nội dung rất nhỏ và được gọi rất thường xuyên.Sử dụng hàm inline trong class, nên sử dụng từ khóa inline bên ngoài lớp với định nghĩa hàm.Vd:class classX{private: string name;public: string getName();};inline string classX::getName(){return name;}- Trường hợp không nên sử dụng hàm inline:Do quá trình compiler thay thế các vị trí gọi hàm bằng nôi dung hàm nên các trường hợp hàm lớn, phức tạp, nếu sử dụng hàm inline sẽ dẫn tới tệp thực thi lớn và sẽ tốn tài nguyên để lưu các biến trong hàm inline.Hàm khởi tạo và hàm hủy.Hàm ảo hầu như sẽ không được là hàm inline.-> Hàm ảo khi được gọi bằng tham chiếu của lớp cơ sở hoặc con trỏ, thì không thể là inline_function (vì lời gọi sẽ được giải quyết trong thời gian chạy chương trình). Nhưng khi được gọi bằng cách sử dụng đối tượng (không có tham chiếu hoặc con trỏ) của lớp đó, có thể là inline_function vì trình biên dịch biết chính xác lớp của đối tượng trong thời gian biên dịch chương trình.Vd:#include using namespace std;class Base{public: virtual void who() { cout it can be inline Base *ptr = new Derived(); ptr->who(); //-> it cannot be inline return 0;}- Lưu ý:Từ khóa inline thực hiện một yêu cầu đến compiler(không phải là một lệnh). Vì vậy trong một số trường hợp, trình biên dịch sẽ bỏ qua từ khóa “inline” để biên dịch như một hàm thông thường:

Trong hàm inline chứa vòng lặp

Related Posts