30/09/2018, 17:56

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 ạ?

Mai Anh Dũng viết 19:59 ngày 30/09/2018

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
}
Nguyễn Hoàng Trung viết 20:10 ngày 30/09/2018

Ủ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 ạ?

Mai Anh Dũng viết 20:05 ngày 30/09/2018

Đú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.

Nguyễn Hoàng Trung viết 20:01 ngày 30/09/2018

đa tạ anh công nhận diễn đàn nhiều icon độc thiệt :v

Bài liên quan
0