Lý thuyết


10. Hàm


10.1. Các ví dụ về hàm

Trong một số chương trình lớn, có thể có những đoạn chương trình được viết lặp đi lặp lại nhiều lần. Để đơn giản và dễ kiểm soát người lập trình thường phân chia những đoạn lặp đi lặp lại đó thành các chương trình con (hàm). Hàm trong C có thể trả về kết quả thông qua tên hàm hay không trả về kết quả (các hàm thực thi).

Hàm main () là một hàm đặc biệt của ngôn ngữ C, đây là hàm đầu tiên được thực thi trong chương trình, mỗi một chương trình chỉ có một hàm main duy nhất. Khi thực hiện hàm main có thể gọi các hàm khác trong cùng một file hoặc các file khác (đã được khai báo trước khi gọi) tạo thành một chương trình hoàn chỉnh.

Trong C cơ bản có 2 loại hàm cơ bản là hàm chuẩn (các hàm đã có sẵn trong các thư viện, người dùng chỉ việc khai báo thư viện và gọi hàm khi dùng) và hàm tự tạo (hàm này do người lập trình tự tạo chưa có trong thư viện).

Cú pháp:

<Kiểu kết quả hàm> <Tên hàm> (<kiểu tham số> <tham số> ...)
	{	
		<Thân hàm;>		
	}

Trong đó:

Nguyên tắc hoạt động của hàm: khi gặp câu lệnh gọi hàm, chương trình sẽ nhảy đến vị trí của hàm tương ứng thực thi các lệnh trong hàm đó. Nếu hàm có sử dụng tham số thì chương trình thì chương trình sẽ truyền dữ liệu cho các tham số đó. Sau khi thực hiện xong chương trình sẽ nhảy về vị trí nơi chương trình chính gọi hàm và thực hiện các lệnh tiếp theo. Nếu hàm có giá trị trả về thì giá trị trong biểu thức return sẽ là giá trị của hàm.

Khai báo prototype cho hàm: để chương trình có thể gọi thực thi hàm vào bất kì thời điểm nào thì ta nên khai báo prototype cho hàm ở đầu chương trình. Khai báo prototype của một hàm có dạng sau:

**<Kiểu kết quả hàm> <tên hàm> (danh sách các đối số);**

Danh sách các đối số là khai báo các kiểu dữ liệu của các tham số của hàm, các đối số của hàm được cách nhau bằng dấu phẩy.