printf 作为函数的参数
函数的通常用法:
my_func("test");
那么我是否可以使用这个参数呢?
my_func(printf("current_count_%d",ad_id));
int my_func(const char *key)
Usually usage of function:
my_func("test");
Whether I can use this parameter so?
my_func(printf("current_count_%d",ad_id));
int my_func(const char *key)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
是的,您可以使用
printf
的返回值作为函数参数。但请记住
printf
成功时返回写入的字符数。因此
传递
6
到foo
函数而不是bar123
。如果您想传递
printf
打印的字符串,可以使用sprintf
函数。它与 printf 类似,但不是写入控制台,而是写入 char 数组。Yes you can use the return value of
printf
as a function parameter.But remember
printf
on success returns the number of characters written.So
passes
6
to thefoo
function notbar123
.If you want to pass the string that
printf
prints, you can make use ofsprintf
function. It is similar toprintf
but instead of writing to the console it writes into a char array.不;
printf()
返回打印到标准输出的字符数。使用 s[n]printf() 创建字符串,然后传递该字符串。No;
printf()
returns the number of characters printed to stdout. Uses[n]printf()
to create the string, then pass that.如果您希望将可变数量的参数(例如 printf 接受的参数)传递给某个函数,那么您需要查看 .重现 printf (为了论证):
如果您想添加与格式无关的其他参数,请将它们添加在“fmt”参数之前。 Fmt 被传递给 va_start 来表示“变量参数在这个之后开始”。
If you're looking to pass a variable number of arguments, like printf accepts, to some function then you need to look into . To reproduce printf (for the sake of argument):
If you wanted to add additional arguments that aren't related to the format, add them before the 'fmt' argument. Fmt is passed to va_start to say "the variable arguments start after this one".
函数
printf
返回一个整数。因此,只要
my_func
采用整数作为参数,您就可以在my_func
中使用它。事实似乎并非如此。The function
printf
returns an integer.Hence, you can use it in
my_func
as long asmy_func
takes an integer as parameter. This does not seem to be the case.