Trong bài này chúng ta sẽ cùng nhau tìm hiểu về cấu trúc của một hàm (function) trong C.
Khai báo và khởi tạo hàm trong C
Cú pháp để khai báo 1 hàm như sau:
kiểu dữ liệu tên hàm () { } ;
Ví dụ một hàm do người dùng định nghĩa:
cpp
int sum() {
//
return sum;
}
intchính là kiểu dữ liệu của hàm, các kiểu dữ liệu của hàm giống với kiểu dữ liệu của biến. Kiểu dữ liệu của hàm quyết định giá trị trả về của hàm đó.sumlà tên của hàm do lập trình viên tự đặt tên, quy tắc đặt tên hàm giống với quy tắc đặt tên biến. Tên hàm sẽ thể hiện chức năng của hàm đó làm gì. Ở đây hàmsum()sẽ có ý nghĩa - chức năng tính tổng các số nguyên.- Một hàm sẽ có thêm
()sau tên hàm và body code nằm trong block code{ }. ()là nơi truyền tham số cho hàm. Cụ thể chúng ta sẽ tìm hiểu ở bên dưới.- Kết thúc hàm luôn luôn phải có
returnđể trả về kết quả cho hàm. Ví dụ ở đây khi hàmsum()tính tổng xong thì chúng ta cần phảireturnlại kết quả tổng đã tính được.
Ví dụ một hàm hệ thống:
cpp
double sqrt(double x) {
//
return result;
}
doublechính là kiểu dữ liệu của hàm này.sqrtlà tên của hàm do lập trình viên viết lên C định đặt tên.- Ở hàm này chúng ta có thể thấy trong
()có một biếndouble x. Biếnxđược gọi là tham số của hàmsqrt(). Ở đây bạn có thể hiểu hàmsqrt()sẽ tính kết quả căn bậc 2 của 1 số mà chúng ta mong muốn, vì chúng ta chưa biết chính xác số đó là gì nên chúng ta sẽ dùng một biến đại diện để tính toán, ở đây chính là biếnx. Hàmsqrt()sẽ tính giá trị căn bậc 2 củaxvà trả về kết quả thông quareturn.
Cùng xem lại cách sử dụng hàm sqrt():
cpp
#include <stdio.h>
#include <math.h>
int main() {
double result;
result = sqrt(9);
printf("result = %.2lf", result);
}
- Nhìn cấu trúc hàm
sqrt()bên trên bạn có thể thấy là lúc sử dụng hàm, chúng ta đã thay thế biếnxbằng một số cụ thể là9để tính toán. - Vì hàm
sqrt()có kiểu dữ liệu làdoublenên chúng ta cần khai báo biếndouble resultđể lấy kết quả trả về của hàmsqrt()gán vào biếnresult.
Kết quả
result = 3.00