Sự khác biệt giữa chức năng Macro và Inline

Mục lục:

Sự khác biệt giữa chức năng Macro và Inline
Sự khác biệt giữa chức năng Macro và Inline

Video: Sự khác biệt giữa chức năng Macro và Inline

Video: Sự khác biệt giữa chức năng Macro và Inline
Video: C/C++: Đừng để macro đẻ bug. Sử dụng macro sao cho đúng và an toàn. 2024, Tháng bảy
Anonim

Sự khác biệt chính - Macro và Hàm nội tuyến

Macro là một đoạn mã, là một chỉ thị tiền xử lý. Hàm nội tuyến là một tính năng nâng cao của C ++ để giảm thiểu thời gian thực thi của một chương trình. Do đó, sự khác biệt chính giữa Macro và Hàm nội tuyến là macro được bộ xử lý tiền xử lý kiểm tra trong khi hàm nội tuyến được trình biên dịch kiểm tra.

Một macro được bao gồm ở đầu chương trình trước dấu thăng. Khi có tên macro trong chương trình, nó được thay thế bằng nội dung của macro.

Macro là gì?

Bộ tiền xử lý là một chương trình xử lý mã nguồn trước khi nó chuyển qua trình biên dịch. Nó hoạt động bằng cách sử dụng dòng lệnh tiền xử lý hoặc các chỉ thị. Trong chương trình, các chỉ thị tiền xử lý được đặt trong chương trình nguồn trước chương trình chính. Trước khi mã nguồn đi qua trình biên dịch, nó sẽ được bộ xử lý kiểm tra các chỉ thị tiền xử lý. Các chỉ thị tiền xử lý có ký hiệu. Không giống như các câu lệnh khác, chúng không kết thúc bằng dấu chấm phẩy. Một loại chỉ thị tiền xử lý là macro. Nói chung, các macro được viết bằng chữ in hoa.

Sự khác biệt giữa chức năng Macro và Inline
Sự khác biệt giữa chức năng Macro và Inline

Hình 01: Chương trình C ++ với Macro

Theo chương trình trên, dòng 3 và dòng 4 chỉ macro. Khi tính toán diện tích, giá trị PI được thay thế bằng macro đã xác định. Trong dòng 14, volume=CUBE (value), bộ tiền xử lý mở rộng câu lệnh dưới dạng volume=(valuevaluevalue). Việc tìm hình khối có thể được viết dưới dạng một hàm, nhưng ở đây nó được viết bằng macro. Nếu có một câu lệnh là volume=CUBE (x + y), thì nó sẽ mở rộng thành volume=(x + yx + yx + y).

Một số mã thông báo lập trình có thể dễ bị gõ nhầm. Chúng có thể được thay thế bằng macro. ví dụ. define AND &&, define OR ||. Định nghĩa macro cũng có thể bao gồm các biểu thức chẳng hạn như define AREA 45.56.

Hàm Inline là gì?

Khi một hàm được gọi, trình biên dịch sẽ mất một khoảng thời gian để thực thi nó. Nếu hàm không phức tạp lắm, người lập trình có thể chuyển hàm thành hàm nội tuyến. Tham khảo chương trình bên dưới.

Sự khác biệt giữa Macro và Hàm nội tuyến_ Hình 2
Sự khác biệt giữa Macro và Hàm nội tuyến_ Hình 2

Hình 02: Hàm không có nội tuyến

In_hello là một chức năng đơn giản. Nó in ra chuỗi “Hello” khi hàm được gọi. Thời gian thực hiện hàm đó là 0,187s. Khi sử dụng từ khóa nội tuyến như sau, thời gian thực hiện giảm xuống còn 0,064 giây.

Sự khác biệt chính giữa Macro và Hàm nội tuyến
Sự khác biệt chính giữa Macro và Hàm nội tuyến

Hình 03: Hàm nội tuyến

Do đó, bằng cách sử dụng từ khóa nội tuyến, thời gian thực hiện sẽ giảm xuống. Các hàm nội tuyến có thể không hoạt động nếu có các vòng lặp, các câu lệnh chuyển đổi và nếu hàm chứa các biến tĩnh hoặc hàm đệ quy.

Sự khác biệt giữa Hàm Macro và Hàm Nội tuyến là gì?

Macro so với Hàm nội tuyến

Macro là một đoạn mã, là một chỉ thị tiền xử lý được bao gồm ở đầu chương trình trước dấu thăng. Hàm nội tuyến là một tính năng nâng cao của C ++ để giảm thiểu thời gian thực thi chương trình.
Thời gian đánh giá
Trong macro, đối số được đánh giá mỗi khi nó được sử dụng trong chương trình. Trong dòng, đối số được đánh giá một lần.
Được kiểm tra bởi
Một macro được kiểm tra bởi bộ xử lý trước. Một hàm nội tuyến được trình biên dịch kiểm tra.
Từ khóa
Marco sử dụngđịnh nghĩa. Hàm inline sử dụng từ khóa ‘inline’.
Cách sử dụng
Macro có thể được sử dụng để xác định hằng số, biểu thức, để thay thế văn bản theo nghĩa đen và xác định các hàm, v.v. Một hàm nội tuyến có thể được sử dụng để giảm thiểu thời gian thực hiện chương trình.
Chấm dứt
Macro kết thúc với dòng mới. Hàm nội tuyến kết thúc bằng dấu ngoặc nhọn ở cuối hàm nội tuyến.
Điểm xác định
Một Marco được định nghĩa ở đầu chương trình. Một hàm nội tuyến có thể ở bên trong hoặc bên ngoài lớp.

Tóm tắt - Macro so với Hàm nội tuyến

Bài viết này đã thảo luận về sự khác biệt giữa Macro và Hàm nội tuyến. Những khái niệm này được sử dụng trong lập trình C ++. Sự khác biệt giữa Macro và Hàm nội tuyến là macro được bộ xử lý tiền xử lý kiểm tra trong khi hàm nội tuyến được trình biên dịch kiểm tra.

Đề xuất: