如何在C中的函数中传递参数的数字变量

时间:2013-03-19 13:05:28

标签: c function arguments variadic-functions

我正在创建一个函数,必须传递至少2个(两个)参数:myStruct和value,其他参数是可选的。

这是我的功能样本:

int find(struct myStruct *, void * value, ...);

这是所有可能的论点:

struct myStruct *, void * value, int (*comparable) (void *, void *), int flag

我相信我将不得不使用va_list,但我不希望传递null如何使用最后的参数。这可能吗?

1 个答案:

答案 0 :(得分:0)

使用可变参数,您至少有以下选项:

  • 最后一个参数是NULL(或者可以识别为终结符的不同内容)
  • “first”参数是函数必须识别的参数数量。
  • 第一个参数spezify,必须遵循的内容(如格式字符串)

但请记住:您(程序员)必须确保您提供正确数量的参数。因此,如果你想从你的函数中创建一个接口(对于其他程序员),请确保它尽可能自然地安全。如果是,f.e。多重创建-GUI-Function,gui-elements的NULL终止列表考虑在内。