我创建的函数需要传递至少 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/