Chương 8 - Hàm trong C. Chương 8 gồm có các nội dung: Khai báo hàm, định nghĩa hàm, sử dụng hàm, con trỏ trỏ tới hàm, xây dựng thư viện hàm. Mời các bạn cùng tham khảo để biết thêm các nội dung chi tiết.
Chương Hàm C I Khai báo hàm II Định nghĩa hàm III Sử dụng hàm IV Con trỏ trỏ tới hàm V Xây dựng thư viện hàm Lập trình nâng cao - Chương 08 - Ngơ Cơng Thắng I Khai báo hàm Giới thiệu hàm Cú pháp khai báo hàm Các tham số khai báo hàm Lập trình nâng cao - Chương 08 - Ngô Công Thắng Giới thiệu hàm ² Trong C tất chương trình gọi hàm ² Ngoài hàm thư viện có sẵn, người lập trình tự tạo hàm Để tạo hàm người lập trình phải khai báo định nghĩa ² Khai báo hàm (function declaration or prototype) xác định tên hàm, kiểu liệu trả về, số lượng tham số kiểu tham số ² Định nghĩa hàm (function definition) xác định công việc mà hàm thực thông qua lệnh hàm ² Các hàm C không lồng nhau, tức hàm ta định nghĩa hàm khác Lập trình nâng cao - Chương 08 - Ngơ Cơng Thắng Cú pháp khai báo hàm ² Cú pháp khai báo hàm nằm dòng, kết thúc dấu chấm phẩy Kiểu_trả_về Tên_hàm(Kiểu_1 Tên_tham_số_1, Kiểu_2 Tên_tham_số_2,…); Ví dụ: float inchtomet(float x); int cong(int a, int b); ² Một khai báo hàm khơng cho biết có thân hàm Nó báo cho trình biên dịch biết tên hàm, kiểu hàm, số lượng tham số kiểu tham số Lập trình nâng cao - Chương 08 - Ngô Công Thắng Cú pháp khai báo hàm (tiếp) ² Khai báo hàm đặt đâu trước gọi hàm Tốt để đầu tệp chứa chương trình (chứa hàm main) để trước hàm gọi Trong chương trình nhiều file khai báo hàm thường để file header có h, cịn định nghĩa hàm để file thư viện có obj lib ² Nếu hàm định nghĩa trước gọi hàm khơng cần khai báo hàm Tuy nhiên nên có khai báo hàm chương trình có nhiều hàm lớn hay chương trình nằm nhiều file Lập trình nâng cao - Chương 08 - Ngô Công Thắng Các tham số khai báo hàm ² Nếu hàm tham số dấu ngoặc đơn khai báo hàm để trống Ví dụ: int xoa(); ² Tên tham số khai báo hàm khơng cần xác định Ví dụ: float inchtomet(float, float); Lập trình nâng cao - Chương 08 - Ngơ Cơng Thắng II Định nghĩa hàm Cú pháp định nghĩa hàm Lệnh return Hàm không trả giá trị Lập trình nâng cao - Chương 08 - Ngơ Công Thắng Cú pháp định nghĩa hàm Kiểu_trả_về Tên_hàm(Kiểu_1 Tên_tham_số_1, Kiểu_2 Tên_tham_số_2,…) { Khơng có dấu //Các lệnh hàm để Thân hàm chấm phẩy } Ví dụ: int cong(int a, int b) { int z; z = a + b; return z; } Lập trình nâng cao - Chương 08 - Ngô Công Thắng Cú pháp định nghĩa hàm (tiếp) ² Dòng định nghĩa hàm giống khai báo hàm, khác khơng có dấu chấm phẩy tham số bắt buộc phải có tên ² Khi có khai báo hàm định nghĩa hàm thường để sau hàm main để tệp obj (lib) Để quen dần với việc viết chương trình lớn, thực hành viết khai báo hàm tệp h, định nghĩa hàm để tệp obj (lib) Lập trình nâng cao - Chương 08 - Ngô Công Thắng Lệnh return ² Lệnh return sử dụng hàm Lệnh return thực hai chức năng: n n Làm cho hàm trở chương trình gọi Được dùng để trả giá trị ² Cú pháp dùng lệnh return sau: return Giá_trị_trả_về; return; ² Lệnh return dùng vị trí hàm thường cuối hàm ² Với hàm có trả giá trị lệnh return bắt buộc phải có Lập trình nâng cao - Chương 08 - Ngơ Cơng Thắng 10 Hàm không trả giá trị ² Với hàm khơng trả giá trị khai báo định nghĩa hàm ta phải khai báo kiểu trả void Ví dụ: void chao(); ² Nếu sử dụng lệnh return hàm không trả giá trị dùng dạng: return; Lập trình nâng cao - Chương 08 - Ngô Công Thắng 11 III Sử dụng hàm Lời gọi hàm Truyền đối số theo giá trị Truyền trỏ tới hàm Truyền mảng tới hàm Lập trình nâng cao - Chương 08 - Ngô Công Thắng 12 Lời gọi hàm ² Một hàm, sau định nghĩa khai báo, thực lệnh gọi hàm (lời gọi hàm) chương trình Có thể gọi từ hàm main, gọi từ hàm khác gọi từ hàm thành viên lớp ² Cú pháp gọi hàm sau: Tên_hàm(Danh sách đối số, có); ² Nếu hàm khai báo định nghĩa có tham số gọi hàm ta phải truyền giá trị cho hàm qua tham số Các giá trị truyền cho hàm gọi đối số Các đối số hằng, biến, mảng, trỏ,… Lập trình nâng cao - Chương 08 - Ngơ Cơng Thắng 13 Lời gọi hàm (tiếp) ² Ví dụ: giả sử ta khai báo hàm cộng hai giá trị float int cong(int a, int b); Ta gọi hàm sau: cong(7,8); ² Lời gọi hàm có trả giá trị sử dụng biểu thức, cịn lời gọi hàm khơng trả giá trị không dùng biểu thức Khi dùng biểu thức khơng có dấu chấm phẩy sau lời gọi hàm Ví dụ: a = cong(7,8) +2; cout