Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Hàm trong lập trình C


Hàm là nhóm câu lệnh cùng 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à main(), và có thể định nghĩa thêm hàm khác.

Bạn có thể chia mã thành các hàm riêng biệt. Cách chia tùy bạn, nhưng logic là mỗi hàm thực hiện nhiệm vụ cụ thể.

Khai báo hàm báo cho trình biên dịch tên hàm, kiểu trả về, tham số. Định nghĩa hàm cung cấp thân hàm thực tế.

Thư viện chuẩn C cung cấp nhiều hàm tích hợp như strcat() nối chuỗi, memcpy() sao chép bộ nhớ, và nhiều hơn nữa.

Hàm cũng gọi là phương pháp, thủ tục con, thủ tục, v.v.

Định nghĩa hàm

Dạng chung định nghĩa hàm trong C:

return_type function_name(parameter list) {
    body of the function
}

Định nghĩa hàm gồm header và body. Các phần:

  • Kiểu trả về - Hàm có thể trả về giá trị. return_type là kiểu dữ liệu của giá trị trả về. Một số hàm thực hiện thao tác không trả về giá trị, khi đó return_type là từ khóa void.

  • Tên hàm - Tên thực tế của hàm. Tên hàm và danh sách tham số tạo thành chữ ký hàm.

  • Tham số - Giống placeholder. Khi gọi hàm, truyền giá trị cho tham số. Giá trị này gọi là tham số thực hoặc đối số. Danh sách tham số chỉ kiểu, thứ tự, số lượng tham số. Tham số tùy chọn; hàm có thể không có tham số.

  • Thân hàm - Chứa tập câu lệnh định nghĩa chức năng hàm.

Ví dụ mã

/* hàm trả về max của hai số */
int max(int num1, int num2) {
    /* khai báo biến cục bộ */
    int result;
    if (num1 > num2)
        result = num1;
    else
        result = num2;
    return result;
}

Khai báo hàm

Khai báo hàm báo cho trình biên dịch tên hàm và cách gọi. Thân hàm có thể định nghĩa riêng.

Khai báo hàm có các phần:

return_type function_name(parameter list);

Với hàm max() trên, khai báo là:

int max(int num1, int num2);

Tên tham số không quan trọng trong khai báo, chỉ cần kiểu, nên sau cũng hợp lệ:

int max(int, int);

Gọi hàm

Khi tạo hàm C, bạn định nghĩa nhiệm vụ. Để dùng hàm, phải gọi nó để thực hiện nhiệm vụ.

Khi chương trình gọi hàm, điều khiển chuyển sang hàm được gọi. Hàm thực hiện nhiệm vụ và khi gặp return hoặc dấu ngoặc đóng kết thúc hàm, trả điều khiển về chương trình chính.

Để gọi hàm, truyền tham số cần thiết kèm tên hàm. Nếu hàm trả về giá trị, có thể lưu giá trị trả về. Ví dụ:

Ví dụ mã

#include <stdio.h>
/* khai báo hàm */
int max(int num1, int num2);

int main() {
    /* định nghĩa biến cục bộ */
    int a = 100;
    int b = 200;
    int ret;
    /* gọi hàm lấy giá trị max */
    ret = max(a, b);
    printf("Max value is: %d\n", ret);
    return 0;
}

/* hàm trả về max giữa hai số */
int max(int num1, int num2) {
    /* khai báo biến cục bộ */
    int result;
    if (num1 > num2)
        result = num1;
    else
        result = num2;
    return result;
}

Kết quả

Max value is: 200