Một hàm là một nhóm các câu lệnh cùng nhau thực hiện một nhiệm vụ. Mỗi chương trình C có ít nhất một hàm, là hàm main(). Bạn có thể chia mã của bạn thành các hàm riêng biệt. Cách bạn phân chia mã của bạn giữa các hàm khác nhau tùy thuộc vào bạn, nhưng về mặt logic mỗi hàm thực hiện một tác vụ cụ thể. Một khai báo hàm cho trình biên dịch biết về tên, kiểu trả về và các tham số của hàm. Định nghĩa hàm cung cấp phần thân thực của hàm. Thư viện chuẩn C cung cấp nhiều hàm được tích hợp sẵn mà chương trình của bạn có thể gọi. Ví dụ, strcat() để nối hai chuỗi, memcpy() để sao chép một vị trí bộ nhớ sang một vị trí khác và nhiều hàm khác. Một hàm cũng có thể được gọi là một phương thức hoặc một thường trình con hoặc một thủ tục, v.v. Định nghĩa một hàmDạng chung của định nghĩa hàm trong C như sau: return_type function_name(parameter list) { }Định nghĩa hàm trong lập trình C bao gồm tên hàm và phần thân hàm . Dưới đây là tất cả các phần của hàm:
Tên hàm: Đây là tên thực của hàm.
Ví dụ dưới đây là mã nguồn cho một hàm được gọi là max(). Hàm này truyền vào hai tham số num1 và num2 và trả về giá trị lớn nhất giữa hai tham số: / hàm trả về giá trị lớn nhất giữa 2 số / int max(int num1, int num2) { / khai báo biến local / int result; if (num1 > num2) else return result;
}Khai báo hàm trong CMột khai báo hàm cho trình biên dịch biết về tên hàm và cách gọi hàm. Cơ thể thực tế của hàm có thể được định nghĩa riêng. Một khai báo hàm có các phần sau: return_type function_name(parameter list); Đối với hàm được định nghĩa ở trên max (), khai báo hàm như sau: int max(int num1, int num2); Tên tham số không quan trọng trong khai báo hàm chỉ loại của chúng là bắt buộc, vì vậy sau đây cũng là khai báo hợp lệ: Khai báo hàm là bắt buộc khi bạn định nghĩa một hàm trong một tệp nguồn và bạn gọi hàm đó trong một tệp khác. Trong trường hợp này, bạn nên khai báo hàm ở đầu tệp gọi hàm.
Gọi một hàm trong CHàm trong lập trình C hoạt động như thế nào? Hình ảnh sau đây mô tả gọi một hàm do người dùng định nghĩa bên trong hàm main(): Trong khi tạo một hàm C, bạn đưa ra một định nghĩa về chức năng của hàm. Để sử dụng một hàm, bạn sẽ phải gọi hàm đó để thực hiện tác vụ được xác định. Khi một chương trình gọi một hàm, điều khiển chương trình được chuyển đến hàm được gọi. Một hàm được gọi thực hiện một nhiệm vụ đã định nghĩa và khi câu lệnh trả về của nó được thực hiện hoặc khi nó kết thúc bằng hàm đóng, nó sẽ trả về chương trình điều khiển quay trở lại chương trình chính. Để gọi một hàm, bạn chỉ cần chuyển các tham số bắt buộc cùng với tên hàm và nếu hàm trả về một giá trị, thì bạn có thể lưu trữ giá trị trả về. Ví dụ: include <stdio.h>/ khai bao ham / int max(int num1, int num2); int main () { / dinh nghia bien local / int a = 100; int b = 200; int ret; / goi mot ham de lay gia tri lon nhat / ret = max(a, b); printf( "Max value is : %d\n", ret ); return 0; } / ham tra ve gia tri lon nhat giua hai so / int max(int num1, int num2) { / dinh nghia bien local / int result; if (num1 > num2) else return result;
}Kết quả: Các đối số của hàm trong CNếu một hàm sử dụng các đối số, nó phải khai báo các biến chấp nhận các giá trị của các đối số. Các biến này được gọi là các tham số chính thức của hàm. Các tham số chính thức hoạt động giống như các biến địa phương (local) khác bên trong hàm và được tạo khi nhập vào hàm và bị hủy khi thoát. Trong khi gọi một hàm, có hai cách trong đó các đối số có thể được chuyển đến một hàm: No. Kiểu gọi & mô tả 1 Call by value Phương thức này sao chép giá trị thực của một đối số vào tham số chính thức của hàm. Trong trường hợp này, các thay đổi được thực hiện cho tham số bên trong hàm không ảnh hưởng đến đối số. 2 Call by reference Phương thức này sao chép địa chỉ của một đối số vào tham số chính thức. Bên trong hàm, địa chỉ được sử dụng để truy cập đối số thực tế được sử dụng trong cuộc gọi. Điều này có nghĩa là các thay đổi được thực hiện cho tham số ảnh hưởng đến đối số. Theo mặc định, C sử dụng call by value để chuyển đối số. Nói chung, nó có nghĩa là mã trong một hàm không thể thay đổi các đối số được sử dụng để gọi hàm. |