Hàm

Hàm là 1 nhóm các lệnh cùng nhau thực hiện 1 nhiệm vụ. Trong mỗi chương trình C, có ít nhất 1 hàm là hàm main(). Hàm main() là điểm bắt đầu của chương trình. Bạn có thể chia chương trình lớn thành các chức năng nhỏ (hàm) để dễ quản lý. Việc phân chia thành các hàm nhỏ thường là mỗi hàm sẽ thực hiện 1 chức năng riêng biệt. Thư viện chuẩn của ngôn ngữ C cung cấp nhiều hàm đã được định nghĩa, ví dụ: hàm strlen() trả về độ dài của chuỗi kí tự, hàm strcat() nối 2 chuỗi kí tự, … Để gọi các hàm trong thư viện, các bạn chỉ cần #include “<thư viện>” chứa hàm đó.
Các hàm sẽ được định nghĩa (define), khai báo (declaration), gọi (calling) như sau:

//Khai báo hàm
...
void main()
{
//gọi hàm
}
//Định nghĩa hàm
...

1. Khai báo hàm
Thông báo cho trình biên dịch biết tên hàm, tham số, giá trị trả về.

<giá trị trả về><tên hàm>(<tham số>);


<giá trị trả về>: kiểu int, float, char, char*,…struct,..

<tên hàm>: đặt theo quy tắc đặt tên biến.
<tham số>: các giá trị truyền vào trong hàm.
Cuối câu lệnh khai báo hàm phải có dấu ;

 

2. Định nghĩa hàm

<giá trị trả về><tên hàm>(<tham số>)
{
//thân hàm
}

 

<giá trị trả về>: kiểu int, float, char, char*,…struct,..
<tên hàm>: đặt theo quy tắc đặt tên biến.
<tham số>: các giá trị truyền vào trong hàm
<thân hàm>: bao gồm 1 tập hợp nhiều câu lệnh. Cuối hàm phải có lệnh return <giá trị trả về>; . Với giá trị trả về là kiểu void thì không cần lệnh return trong thân hàm.

3. Gọi hàm
Sau khi định nghĩa và khai báo hàm, bạn có thể sử dụng hàm bằng cách gọi hàm vào đoạn chương trình cần sử dụng.
Chú ý:
– Có thể gọi hàm con trong hàm main() hoặc trong các hàm con khác
– Không được gọi hàm main() trong các hàm con khác.

Ví dụ 1: Viết hàm con tính tổng 2 số nguyên

#include <stdio.h>
#include <conio.h>

// Declare function
int sum(int a, int b);

int main()
{
    int a = 4, b = 8;
    int s;
    // Call sum()
    s = sum(a, b);
    printf("%d + %d = %d", a, b, s);
    getch();
}

// Define sum()
int sum(int a, int b)
{
    return(a + b);
}

Ví dụ 2: Viết hàm hiển thị tên nhập vào

#include <stdio.h>
#include <conio.h>

// khai bao ham
void display(char* s);

int main()
{
    char *s = "vncoding.net";
    // Call display()
    display(s);
    getch();
}

// Define display()
void display(char* s)
{
    printf("%s", s);
}

Kết quả: vncoding.net

Ví dụ 3: Viết hàm đếm và trả về số kí tự của 1 chuỗi.

#include <stdio.h>
#include <conio.h>

// Declare function
int count(char* s);

int main()
{
    char *s = "vncoding.net";
    int length;
    // Call count()
    length = count(s);

    printf("length of '%s' is %d", s, length);
    getch();
}

// Define count()
int count(char* s)
{
    int num = 0;
    while(*s++ != NULL)
    {
       num++;
    }
    return num;
}

Kết quả: length of ‘vncoding.net’ is 12

4 Comments on Hàm

  1. a ơi a sửa lỗi giup e vs ạ
    #include
    #include

    int main()
    {
    int tuoi=18

    if (“tuoi>=18”);
    {
    printf(“toi la nguoi truong thanh\n”,tuoi);}
    else if
    {(“toi la nguoi tre con\n”,tuoi);}
    else(“toi la bede\n”)

    return 0;
    }
    em chạy chương trình nó báo lỗi : expected initializer before ‘int’

    • #include
      #include

      int main()
      {
      int tuoi=18;

      if (tuoi>=18)
      {
      printf(“toi la nguoi truong thanh\n”);
      }
      else if(tuoi <18)
      {
      printf("toi la nguoi tre con\n");
      }
      else{
      printf("toi la bede\n");
      return 0;
      }
      }

Leave a Reply to Nguyễn Quang Đại Dương Cancel reply