Macro va_end() trong C (chi tiết nhất)




Macro va_end() trong C

Macro void va_end(va_list ap) trong Thư viện C cho phép một hàm có số tham số biến đổi mà sử dụng macro là va_start để trả về. Nếu va_end không được gọi trước khi trả về từ hàm đó, thì kết quả là không được định nghĩa.

Khai báo Macro va_end() trong C

Dưới đây là phần khai báo cho va_end() macro.

void va_end(va_list ap)

Tham số

  • ap − Đây là đối tượng va_list được khởi tạo trước đó bởi va_start trong cùng hàm.

Trả về giá trị

Macro này không trả về bất cứ giá trị nào.

Ví dụ

Chương trình C sau minh họa cách sử dụng của va_end() macro.

#include 
#include int mul(int, ...);int main()
{
   printf("11 * 15 = %d\n",  mul(2, 11, 15) );
   
   return 0;
}int mul(int num_args, ...)
{
   int val = 1;
   va_list ap;
   int i;   va_start(ap, num_args);
   for(i = 0; i < num_args; i++) 
   {
      val *= va_arg(ap, int);
   }
   va_end(ap);
 
   return val;
}

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Macro va_end trong C

Các bài Thư viện C phổ biến khác tại VietJack:


stdarg-h-trong-c.jsp