Monday, April 25, 2011

Function in C

1 Khi nào sử dụng function ?

  •  Khi: Thực hiện một chức năng giống nhau ở nhiều vị trí khác nhau trong chương trình, khi đó, thay vì viết đi viết lại một đoạn code nhiều lần thì bạn chỉ cần định nghĩa một Function và gọi nó nhiều lần.
  •  Khi: Viết một chương trình phức tạp, nếu cố gắng thực hiện tất cả công việc trong hàm main thì chương trình sẽ trở nên cồng kềnh, khó viết, khó đọc và khó Debug, để tránh điều đó, bạn cần tách những mẫu chương trình có chức năng cụ thể thành những Function riêng.

2 Tạo một Function như thế nào?

Hàm main() là một Function đặc biệt, Main() hay bất kỳ Function nào đều được định nghĩa tương tự nhau theo cấu trúc sau:
       return_type function_name (arguments ) {
              // do function
              // return value
         }
VD 1: Định nghĩa một hàm có chức năng trả về giá trị gấp đôi của giá trị đầu vào kiểu int
       int double_value ( int a ){
             a=2*a;
             return a;
         }

Có thể chia Function ở ví dụ 1 thành 4 phần cụ thể như sau:
2.1 Kiểu trả về (return_type)
int cho ta biết kiểu trả về của hàm int (tức là sau khi thực hiện chức năng của mình hàm này sẽ trả về một giá trị kiểu int), nếu hàm chỉ đơn thuần thực hiện chức năng gì đó mà không cần trả về giá trị thì bạn có thể đặt kiểu trả về là void, VD 2:
       
void print_my_name () {
  printf("my name is: Tran Quoc Viet");
} 
2.2 Tên Function (function_name)
double_value là tên của hàm, tên của hàm được đặt tùy ý với điều kiện không được trùng với bất kỳ từ khóa nào của C, không bắt đầu bằng chữ số hoặc ký tự đặc biệt, tên hàm phân biệt chữ in hoa và chữ in thường.
Tips: Để chương trình thêm sáng sủa, tên của Function nên có tính gợi nhớ, liên tưởng đến chức năng của Function.
2.3 Danh sách đối số (arguments)
( int a ) là danh sách đối số, hàm double_value chỉ có 1 đối số là biến a kiểu int , nhưng bạn cũng có thể truyền nhiều đối số vào hàm ví dự như:
       
int add_function( int a , int b){
     return a+b ;
}

các đối số phân biệt nhau bởi giấu "," hoặc bạn cũng có thể không truyền đối số vào hàm như ví dụ hàm  print_my_name().
2.4 Thân Function (do functions & return value)
             a=2*a;
             return a; 
là tổ hợp một hoặc nhiều câu lệnh để thực chức năng của Function.

3 Sử dụng Function như thế nào?

Để sử dụng hàm ta chỉ cần viết lại tên hàm và truyền các đối số phù hợp, xem đoạn chương trình sau:
       
#include 
int double_function ( int a ){
a = 2*a;
return a;
}
int main ( void ){
    int d;
    d = double_function(5);
    printf("Double 5 is: %d\n",d);
return 0;
}
kết quả in ra là:
       
Double 5 is: 10
Xong ^^

No comments:

Post a Comment