Search…

Function Prototype

11/09/20202 min read
Tìm hiểu về Function Prototype trong C/C++ và cách sử dụng.

Function Prototype là gì?

Hàm nguyên mẫu (Function Prototype) là 1 trong những tính năng quan trọng của C++. Hàm nguyên mẫu cung cấp cho trình biên dịch (compiler) tên của hàm, kiểu dữ liệu mà hàm trả về, số lượng các đối số mà hàm cần cung cấp, kiểu dữ liệu và thứ tự của các đối số đó. Nhờ đó, hàm nguyên mẫu giúp cho trình biên dịch xác nhận các lời gọi hàm mà chưa cần định nghĩa hàm đó. Nói cách khác, chúng giống như 1 lời hứa của bản thân đối với trình biên dịch rằng: “Tôi hứa sẽ định nghĩa hàm này cho bạn. Vì thế, cứ yên tâm mà thực hiện những thao tác tiếp theo”.

Cách sử dụng prototype function

Để sử dụng hàm nguyên mẫu, khai báo theo mẫu sau:

data_type function_name(type_1 argument_1, type_2 argument_2, … , type_n argument_n);

Ví dụ:

int add(int a, int b);

Những lưu ý khi sử dụng prototype function

1. Cách sử dụng hàm nguyên mẫu tương tự như dòng tiêu đề trong khai báo hàm nhưng lưu ý dấu “;” cuối dòng khai báo khi sử dụng hàm nguyên mẫu.

2. Trong khi sử dụng hàm nguyên mẫu, có thể không cần khai báo tên các đối số. Hay nói cách khác tên các đối số không ảnh hưởng gì đến quá trình biên dịch.

Ví dụ: 

int add(int, int);

Lúc này, trình biên dịch sẽ hiểu rằng hàm này trả về kiểu giá trị int và cần cung cấp cho hàm này hai đối số khi cần thực hiện.

3. Có thể đặt tên đối số khác với khi đặt trên tiêu đề định nghĩa hàm. Nhưng kiểu dữ liệu của hàm, số lượng, kiểu dữ liệu, thứ tự của đối số thì phải là đồng nhất. Nếu không tuân theo quy tắc trên thì trình biên dịch sẽ báo lỗi hoặc cho ra kết quả không như mong muốn.

Ví dụ:

int add(int x, int y);
int add(int a, int b)
{
    return a+b;
}

Nhưng nếu trong trường hợp này hàm nguyên mẫu được viết như sau:

void add(int x, int y);

Thì trình biên dịch sẽ báo lỗi ngay lập tức vì kiểu trả về không đồng nhất.

4. Hàm nguyên mẫu nên được đặt trong 1 file header vì có thể có nhiều file cần sử dụng hàm này, còn định nghĩa hàm của chúng nên đặt trong 1 file khác của hệ thống. File header chỉ có nhiệm vụ chỉ cách để giao tiếp với hàm cần sử dụng.

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024