有没有一种方法可以在C中传递这样的字符串?

有没有一种方法可以在C中传递这样的字符串?,c,string,function,parameter-passing,C,String,Function,Parameter Passing,我有一个函数,它接受字符数组(即字符串)作为参数 但整数变量的值也应该作为字符串的一部分打印出来 比如说,, 如果我有这样一个函数: int var=10; void printStr(char str[]) { printf("%s", str); } char tempStr[30]; snprintf(tempStr, sizeof(tempStr), "The value of var is %d", var); printStr(tempStr); 我需要打印整型变量'var

我有一个函数,它接受字符数组(即字符串)作为参数

但整数变量的值也应该作为字符串的一部分打印出来

比如说,, 如果我有这样一个函数:

int var=10;
void printStr(char str[])
{
   printf("%s", str);
}
char tempStr[30];
snprintf(tempStr, sizeof(tempStr), "The value of var is %d", var);
printStr(tempStr);
我需要打印整型变量'var'的值并显示一条消息

“var的值为%d”,var

我试过这个

printStr( ("The value of var is %d", var) );
但它不起作用

有没有一种方法可以在不将变量作为参数传递给
printStr()
的情况下实现这一点

这种情况下的输出应该是

var的值是10


似乎需要函数
sprintf
/
snprintf
来生成字符串

试着这样做:

int var=10;
void printStr(char str[])
{
   printf("%s", str);
}
char tempStr[30];
snprintf(tempStr, sizeof(tempStr), "The value of var is %d", var);
printStr(tempStr);
它是你所需要的吗?

也许你会发现它对你的东西有帮助。但是,您需要对属性使用GCC,并且没有任何可移植到其他编译器的计划


但是,我不会把这些事情弄糟,我会想出一种没有这些的方法。

但是GCC格式属性对于其他编译器来说是不可移植的,而且问题没有GCC标记,是吗?@harper GCC格式属性对于类型检查很有用,但它们并不重要。我将编辑该内容,并说它仅适用于GCC。@伊利亚,这是一个好的。但是有没有一种方法可以做到这一点,而不只是为了将字符串传递给函数而创建字符串?@J…S如果只允许它有一个参数(字符串),我们需要构建一个字符串。如果您可以在此处更改某些内容(例如,如果您可以使用同时包含string和int两个值的
struct
),则无需使用
sprintf
/
snprintf
@J…S不,字符串格式化严格来说是通过调用函数来完成的,在诸如Python之类的语言中没有运算符来执行。@J…S有,但是你基本上实现了printf。