Hàm trong C – phần 2

User-defined functions

User-defined functions là một loại hàm do người dùng tự viết theo nhu cầu để giải quyết các vấn đề.

Ví dụ

Chương trình cho phép cộng 2 số lại với nhau. Để thực hiện điều này chúng ta sẽ viết một hàm tên là addNumbers().

#include <stdio.h>
int addNumbers(int a, int b);         // function prototype

int main()
{
    int n1,n2,sum;

    printf("Enters two numbers: ");
    scanf("%d %d",&n1,&n2);

    sum = addNumbers(n1, n2);        // function call
    printf("sum = %d",sum);

    return 0;
}

int addNumbers(int a, int b)         // function definition   
{
    int result;
    result = a+b;
    return result;                  // return statement
}

Function prototype

Function prototype hay hàm nguyên mãu chỉ đơn giản là một cú pháp để chỉ ra tên hàm, kiểu biến trả về, và các tham số trong ngoặc.

Nếu một hàm được viết trước hàm main() thì không cần thiết phải khai báo hàm nguyên mãu nữa.

Nếu một hàm được viết sau hàm main() thì chúng ta cần khai báo hàm nguyên mãu của nó phía trước hàm main().

returnType functionName(type1 argument1, type2 argument2, ...);

Như ví dụ phía trên, int addNumbers(int a, int b); ở dòng 2 là hàm nguyên mẫu, nó bao gồm các thông tin sau:
1. Tên của hàm là addNumbers()
2. Kiểu biến trả về của hàm là int
3. Có 2 argument trong ngoặc () là ab với định dạng int


Cách gọi một hàm

Cú pháp

functionName(argument1, argument2, ...);

Như ví dụ đầu trang, hàm main đã gọi hàm addNumbers như sau: sum = addNumbers(n1, n2);


Argument trong hàm

Trong ví dụ trên, 2 biến n1n2 đã được dùng để gọi hàm addNumbers().

Biến n1n2 phải cùng định dạng int với tham số ab được định nghĩa bởi hàm.

Sau khi gọi hàm, giá trị của n1n2 sẽ được gán cho ab tương ứng.

argument


Lệnh return

Lệnh return dùng để kết thúc một hàm và trả về một giá trị.

Trong ví dụ trên, giá trị của biến result sẽ được trả về cho hàm main(). Vậy nên biến sum sẽ được gán giá trị của result.

return

Cú pháp:

return (expression);  

Ví dụ

return a;
return (a+b);
Series Navigation<< Hàm trong CHàm trong C – phần 3 >>

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *