Các hàm inline.

Một phần của tài liệu Giáo trình hướng dẫn lập trình C++ (Trang 27 - 28)

Chỉ thị inline có thể được đặt trước khao báo của một hàm để chỉ rõ rằng lời gọi hàm sẽ được thay thế bằng mã lệnh của hàm khi chương trình được dịch. Việc này tương đương với việc khai báo một macro, lợi ích của nó chỉ thể hiện với các hàm rất ngắn, tốc độ chạy chương trình sẽ được cải thiện vì nó khơng phải gọi một thủ tục con.

Cấu trúc của nó như sau:

inline type name ( arguments ... ) { instructions ... }

lời gọi hàm cũng như bất kì một hàm nào khác. Khơng cần thiết phải đặt từ khoá inline trong lệnh gọi, chỉ cần trong lời khai báo hàm là đủ.

Đệ qui.

Các hàm có thể gọi chính nó. Điều này có thể có ích với một số tác vụ như là một số phương pháp sắp xếp hay tính giai thừa của một số. Ví dụ, để tính giai thừa của một số (n), cơng thức tốn học của nó như sau:

n! = n * (n-1) * (n-2) * (n-3) ... * 1

và một hàm đệ qui để tính tốn sẽ như sau:

// factorial calculator

#include <iostream.h> long factorial (long a) {

if (a > 1)

return (a * factorial (a-1)); else return (1); } int main () { long l;

cout << "Type a number: "; cin >> l; cout << "!" << l << " = " << factorial (l); return 0; } Type a number: 9 !9 = 362880

Chú ý trong hàm factorial chúng ta có thể lệnh gọi chính nó nhưng chỉ khi tham số lớn hơn 1, nếu khơng thì hàm sẽ thực hiện một vịng lặp vơ hạn vì sau khi đến 0 nó sẽ tiếp tục nhân cả những số âm.

Hàm này có một hạn chế là kiểu dữ liệu mà nó dùng (long) khơng cho phép tính giai thừa quá 12!.

Một phần của tài liệu Giáo trình hướng dẫn lập trình C++ (Trang 27 - 28)

Tải bản đầy đủ (DOC)

(64 trang)
w