【发布时间】:2016-05-22 07:58:25
【问题描述】:
我正在尝试在 C 编程中编写一个多输入函数。有人可以解释一下以下代码示例中 3 点的含义是什么吗?我意识到我可以使用带有 2 个输入或 3 个或更多输入的“sprintf”,具体取决于需求。怎么能在我的程序中使用这种方法。提前致谢
int sprintf (char *string, const char *form, … );
【问题讨论】:
我正在尝试在 C 编程中编写一个多输入函数。有人可以解释一下以下代码示例中 3 点的含义是什么吗?我意识到我可以使用带有 2 个输入或 3 个或更多输入的“sprintf”,具体取决于需求。怎么能在我的程序中使用这种方法。提前致谢
int sprintf (char *string, const char *form, … );
【问题讨论】:
表达式表示函数必须有两个参数char *string和const char *form,三个点表示可以/应该有更多参数。
注意:这不是正确的 C++ 语法作者只是试图传达一个事实,即可能/应该有更多参数,具体取决于问题的要求.
为了使函数能够接受不同的参数组合,你需要使用函数重载。您可以在此处为您希望函数能够支持的每个参数组合重新定义函数(使用相同的函数名称和类型)。
例如,如果你想让你的函数int sprintf,它可以接受一个指向一个字符的指针和一个指向一个常量字符的指针,或一个指向一个字符的指针,一个指针对于一个常量字符和一个整数你需要写两个定义:一个为
int sprintf (char *string, const char *form);
还有一个
int sprintf (char *string, const char *form, int number);
【讨论】:
sprintf 是标准 C 函数,... 是其原型的一部分,如问题所示。这也是一个 C 问题,而不是 C++ 问题。