What are variadic functions in accordance with C and C++?

前端 未结 3 788
耶瑟儿~
耶瑟儿~ 2020-12-22 04:26

I am confused. As i asked the question previously about overloading in C, i got some answers.

Whenever i try to make others understand about this, I get confused in

相关标签:
3条回答
  • 2020-12-22 05:12

    A variadic function is a (single) function that can be called each time with a different number of arguments. Some variadic functions, like printf, even allow you to use different types of arguments.

    The big difference with overloading is that with a variadic function, you have one single function that is designed to handle a different set or arguments for each call. With overloading, you create several different functions, where each function handles a different set of parameters.

    One thing that all variadic functions have in common is that there must be a way to tell the function what set of arguments is being passed now. The two common ways are:

    1. One of the first, fixed, parameters describes the variable part. For example, the format string of printf
    2. The last parameter has a special value that indicates 'we are done'. For example, the execl function requires the parameter list to be terminated with a (char*)NULL parameter.
    0 讨论(0)
  • 2020-12-22 05:15

    As clearly said so, it used to accept any number of arguments.

    Generally, there might be requirements for such method when the user doesn't know how many variables to be passed inside.

    Eg: For requirement 1, you require to call the method with 2 parameters. For requirement 2, you require to call the same method with 3 parameters.

    0 讨论(0)
  • 2020-12-22 05:19

    In short, they are functions that accept any number of arguments.

    http://en.wikipedia.org/wiki/Variadic_function

    0 讨论(0)
提交回复
热议问题