我有一些简单的代码:
struct s {
char str[128];
};
struct s foo()
{
struct s s = { "some string" };
return s;
}
int main()
{
printf("%s\n", foo().str);
return 0;
}
但它会发出警告:
警告:格式'%s'需要类型为'char *'的参数,但参数为2 类型为'char [128]'[-Wformat]
如果我改变那样的主要功能
int main()
{
struct s s = foo();
printf("%s\n", s.str);
return 0;
}
一切都好。那么,第一个代码中的问题是什么?感谢。
PS。即时通讯使用gcc-4.7.0
PPS。请注意,问题只发生在C编译器上,C ++一切正常