http://vietjack.com/lap_trinh_c/index.jsp Copyright © vietjack.com Hàm C Một hàm nhóm lệnh để thực nhiệm vụ Mỗi chương trình C có hàm hàm main(), tất hầu hết chương trình bình thường định nghĩa thêm hàm Bạn chia đoạn code bạn thành hàm riêng biệt Cách bạn chia đoạn code bạn thành hàm khác phụ thuộc vào bạn, theo tính logic, hàm thường có nhiệm vụ định Một khai báo hàm thông báo với biên dịch tên hàm, kiểu trả tham số Một định nghĩa hàm cung cấp phần thân hàm Các thư viện tiêu chuẩn ngôn ngữ C cung cấp nhiều hàm có sẵn để chương trình bạn gọi Ví dụ, hàm strcat() nối hai đoạn chuỗi, hàm memcpy() dùng để copy vùng nhớ đến vùng nhớ khác nhiều hàm khác Một hàm biết đến với tên khác phương thức, tuyến phụ thủ tục Định nghĩa hàm C Mẫu chung định nghĩa hàm Ngôn ngữ C sau: kieu_tra_ve ten_ham( danh_sach_tham_so ) { than_cua_ham } Một định nghĩa hàm ngôn ngữ C bao gồm đầu hàm thân hàm Dưới phần hàm: • Kiểu trả về: Một hàm trả giá trị Kieu_tra_ve dạng liệu giá trị mà hàm trả Vài hàm cung cấp hoạt động không trả giá trị Đó hàm void • Tên hàm: Đây tên thực hàm Tên hàm danh sách tham số cấu tạo nên dấu hiệu hàm • Tham số: Khi hàm gọi, bạn phải truyền vào danh sách tham số Một giá trị hướng đến tham số thực tế Danh sách tham số có kiểu, thứ tự số http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/lap_trinh_c/index.jsp Copyright © vietjack.com lượng tham số hàm Các tham số hàm tùy chọn, nghĩa hàm khơng có tham số • Thân hàm: Phần thân hàm bao gồm tập hợp lệnh xác định mà hàm thực Ví dụ: Sau mã nguồn cho hàm có tên gọi timGTLN() Hàm có tham số: so1 so2 trả giá trị lớn hàm số: /* ham tra ve gia tri lon nhat giua hai so */ int timGTLN(int so1, int so2) { /* khai bao bien cuc bo */ int ketqua; if (so1 > so2) ketqua = so1; else ketqua = so2; return ketqua; } Khai báo hàm C Một khai báo hàm thơng báo cho trình biên dịch tên hàm cách gọi hàm Phần thân hàm định nghĩa cách rời rạc Một khai báo hàm có phần sau đây: kieu_tra_ve ten_ham( danh sach tham so ); Ví dụ định nghĩa hàm timGTLN(), câu khai báo hàm: int timGTLN(int so1, int so2); Tên tham số không quan trọng việc khai báo hàm, kiểu cách khai báo hợp lệ: int timGTLN(int, int); Một khai báo hàm yêu cầu bạn định nghĩa hàm mã nguồn gọi hàm từ file nguồn khác Trong trường hợp này, bạn nên khai báo hàm trước gọi hàm Gọi hàm C Trong tạo hàm, bạn định nghĩa hàm phải làm Để sử dụng hàm, bạn phải gọi hàm để thực nhiệm vụ cụ thể http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/lap_trinh_c/index.jsp Copyright © vietjack.com Khi chương trình gọi hàm, phần điều khiển chuyển đến hàm gọi Một hàm gọi thực nhiệm vụ định nghĩa trả giá trị sau thực chương trình Để gọi hàm, bạn đơn giản cần truyền tham số yêu cầu với tên hàm hàm trả giá trị, bạn dự trữ giá trị trả này, ví dụ: #include /* khai bao ham */ int timGTLN(int so1, int so2); int main () { /* phan dinh nghia bien cuc bo */ int a = 667; int b = 7028; int kq; /* goi ham de tim gia tri lon nhat */ kq = timGTLN(a, b); printf( "Gia tri lon nhat la : %d\n", kq ); printf("\n===========================\n"); printf("VietJack chuc cac ban hoc tot! \n"); return 0; } /* phan dinh nghia ham de tra ve gia tri lon nhat giua hai so */ int timGTLN(int so1, int so2) { /* khai bao bien cuc bo */ int ketqua; if (so1 > so2) ketqua = so1; else ketqua = so2; return ketqua; } Tôi giữ giá trị hàm timGTLN() hàm main vào biến kq Biên dịch chạy chương trình C cho kết quả: Tham số hàm C Một hàm sử dụng danh sách tham số, phải khai báo biến chấp nhận giá trị biến Các biến gọi biến thức Các biến thức giống biến cục khác bên hàm Khi bạn gọi hàm, có cách để bạn truyền giá trị vào cho hàm: Kiểu gọi Gọi giá trị Miêu tả Phương thức chép giá trị thực tham số vào tham số thức hàm Trong trường hợp này, thay đổi thân tham số bên hàm không ảnh hưởng tới tham số http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/lap_trinh_c/index.jsp Copyright © vietjack.com Gọi tham chiếu Phương thức chép địa tham số vào tham số thức Bên hàm, địa dùng để truy cập tham số thực sử dụng gọi hàm Có nghĩa thay đổi tới tham số làm tham số thay đổi Theo mặc định, C sử dụng gọi giá trị để truyền tham số Nhìn chung, code hàm thay đổi tham số dùng để gọi hàm ví dụ trên, gọi hàm timGTLN() dùng phương thức tương tự http://vietjack.com/ Trang chia sẻ các bài học online miễn phí ... C c biến th c giống biến c c kh c bên hàm Khi bạn gọi hàm, c c ch để bạn truyền giá trị vào cho hàm: Kiểu gọi Gọi giá trị Miêu tả Phương th c chép giá trị th c tham số vào tham số th c hàm Trong. .. Khai báo hàm C Một khai báo hàm thơng báo cho trình biên dịch tên hàm c ch gọi hàm Phần thân hàm định nghĩa c ch rời r c Một khai báo hàm c phần sau đây: kieu_tra_ve ten _ham( danh sach tham so... Copyright © vietjack.com Gọi tham chiếu Phương th c chép địa tham số vào tham số th c Bên hàm, địa dùng để truy c p tham số th c sử dụng gọi hàm C nghĩa thay đổi tới tham số làm tham