Dùng lại một giá trị ở function

Dạ tính hình là em gặp rắc rối như sau: Giả sử như em có func

char test() 
{
char c;
//lệnh bên dưới
return c;
}

rồi làm sao em có thể dùng lại cái c đó ở một hàm khác ạ?

Khi em return c rồi thì em có thể dùng ở hàm khác mà.

Ví dụ:

foo() {
    char c = test();
}

Còn nếu em muốn c của hàm testc chung cho mọi hàm thì mình tạo biến global, biến global tức là biến đặt ngoài mọi hàm.

char c;
char test() {
    // sử dụng c ở đây
}
char foo() {
   // sử dụng c ở đây
}
1 Like

Ủa…nếu theo cách một của anh…thì mình phải tạo thêm một biến c khác nữa ạ?

Đúng vậy, theo cách đầu thì mình tạo biến khác, cái được chuyển từ hàm test sang hàm foo là giá trị của c, không phải là c.

Một biến bao gồm:

  • Địa chỉ biến
  • Giá trị biến

Trong cách 1, mình chỉ chia sẻ giá trị biến.
Trong cách 2, mình chia sẻ cả hai cho mọi hàm.


Nhưng cách 2 không phải là cách hay trong thiết kế phần mềm lâu dài, nếu ta sử dụng biến global nhiều thì sẽ dẫn đến dễ lỗi chương trình. Lỗi là vì nhiều nơi có thể sửa giá trị của biến, code càng nhiều, càng khó kiểm soát khi nào và chỗ nào thay đổi giá trị của biến.

2 Likes

:muscle: :bomb: :vibration_mode: đa tạ anh :smile: công nhận DNH nhiều icon độc thiệt :v

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?