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

标签 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 如何传递最后一个参数。这可能吗?

最佳答案

对于变量参数,您至少有以下选项:

  • 最后一个参数为 NULL(或其他可识别为终止符的参数)
  • “第一个”参数是函数必须识别的参数数量。
  • 第一个参数指定其后必须遵循的内容(例如格式字符串)

但请记住:您(程序员)必须确保提供正确数量的参数。因此,如果您想从您的函数中创建一个接口(interface)(供其他程序员使用),请确保它尽可能安全且自然。如果是的话,f.e.一个多重创建 GUI 函数、一个 GUI 元素的 NULL 终止列表浮现在脑海中。

关于c - 我如何在C中的函数中传递参数的数字变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15500347/

相关文章:

function - 带整数参数的分段 numpy 函数

c# - 用于创建新调制解调器的 API

javascript - 限制用户选中的复选框数量

c++ - 为什么使用不匹配的参数调用重载函数仍然有效

javascript - selenium driver.execute_script 中的 Python var

C 拆分 CMD 参数

C - 使用数组打印从 1 到 100 的所有素数

c - 传递可变数量的参数

c - 更新输出

javascript - 当JS在后台运行时隐藏一个元素然后再次显示