从函数返回struct

时间:2012-05-26 12:32:05

标签: c function struct

  

可能重复:
  Returning struct containing array

我有一些简单的代码:

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 ++一切正常

0 个答案:

没有答案