c - 如何在C函数中使某些参数可选

标签 c parameters default-value

我有一种情况,我希望函数的参数之一是可选的。我想知道如何实现它......?

    int mapgw_cm_trace(int trapLog, char *pcMsgId, ...)

我希望traplog参数是可选的。

或者从另一个角度来看,如果函数调用中未发送此参数,我将此参数设置为默认值(比如 1)...否则使用函数调用中发送的值。有可能实现这一点..?我不想使用 va_args()

最佳答案

VA 列表不好的原因有很多,最明显的是它们的类型安全性很差。避开它们。

在 C 语言中,通常的做法是记录函数,说明如果 trapLog 有这个或那个值,那么它就不会被使用。如果它应该有任何值(value),那么您可以将函数重写为:

int mapgw_cm_trace (const int* trapLog, char *pcMsgId)

并记录如果 trapLog == NULL 它将不会被使用。

关于c - 如何在C函数中使某些参数可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16030268/

相关文章:

c - Arduino 从串口读取字符串

c++ - 解析字符串并将标记作为参数传递

使用默认值更新 Hibernate

java - 为什么列表不能包含在 `Integer...` 参数中

jquery - 对具有自定义数据参数的所有事件使用单个 ajax 函数

带指针的 C++ 默认参数

c# - 明确地初始化构造函数中私有(private)字段的默认值..WTF?

c - 如何在ARM代码战士项目中调用C语言的汇编代码?

c - 系统调用 open() 中的标志组合如何工作?

使用 C cmd mysqldump