🌱 Variadic Function trong C

🌱 Variadic Function trong C

    Trong thực tế khi lập trình chúng ta thường gặp 1 số trường hợp, viết một hàm 2 tham số, nhưng thỉnh thoảng lại cần 3, hoặc đến 4 tham số, chẳng hạn như hàm tính tổng. Vì không thể thay đổi số lượng tham số nên chúng ta phải triển khai viết nhiều hàm khác nhau. Vậy có cách nào viết một hàm mà số lượng tham số tùy biến không?

     Câu trả lời đó chính là Variadic Function.

    👉 Tại sao cần Variadic Function

    Như đã đề cập ở trên thì Variadic Function dùng trong các trường hợp bạn cần dùng một hàm nhưng với số lượng tham số thay đổi. Chẳng hạn như ví dụ dưới đây:

    ➤ Nếu cần tính tổng 2 số nguyên, chúng ta sử dụng hàm sau:

Sum2

    ➤ Còn nếu cần tính tổng 3 số nguyên, chúng ta lại sử dụng hàm sau:

Sum3

    Khi muốn cộng thêm 4, 5, 6 hoặc nhiều đối số hơn, chúng ta lại cần viết lại các hàm khác nhau. Điều này mang đến một bất lợi đó là chúng ta phải tạo ra nhiều hàm, với cùng chức năng, mà lại phải đặt tên khác nhau cho chúng nó 😅😅😅

    ➤ Thật may là trong C chúng ta có Variadic Function hỗ trợ cho những trường hợp này. 

    👉 Ví dụ sử dụng Variadic Function

    Một ví dụ tiêu biểu sử dụng Variadic Function trong C, đó chính là hàm printf trong thư viện stdio.h.

    Dưới đây chúng ta có thể thấy việc sử dụng hàm printf với lần lượt 2, 3 và 4 parameters bên dưới đây:

Variadic

    👉 Triển khai Variadic Function trong C    

    Cú pháp của một hàm Variadic sẽ bao gồm ít nhất một tham số, và phía sau là dấu ... biểu thị cho việc có thể có nhiều tham số phía sau.

Syntax

    Để sử dụng Variadic Funtion, chúng ta cần include thư viện stdarg.h. Thư viện này bao gồm một số phương thức sau <Đi copy tiếng anh ae chịu khó đọc 😆>

Methods
  • va_list chứa các thông tin liên quan đến va_start, va_arg, va_copy, va_end.
  • va_start va_end dùng để bắt đầu và kết thúc quá trình add các tham số. 
  • va_arg sẽ đại diện cho các parameters được thêm vào dấu ... trong quá trình thực hiện Variadic Function. va_arg sẽ có thêm 1 tham số là kiểu dữ liệu của parameter. 
    👉 Dưới đây là chương trình addNumber ở trên được viết theo kiểu Variadic Function các bạn có thể tham khảo!

Sum

    👉 Và dưới đây là cách sử dụng nó! Cứ như Function bình thường thôi, chỉ khác là bao nhiêu param cũng được 😉

use

    👉 Còn đây là kết quả! Rất ổn!

Results

>>>= Follow ngay =<<<

Để nhận được những bài học miễn phí mới nhất nhé 😊

Chúc các bạn học tập tốt 😊

                                          

Nguyễn Văn Nghĩa

Mình là một người thích học hỏi và chia sẻ các kiến thức về Nhúng IOT.

Đăng nhận xét

Mới hơn Cũ hơn