我有一个函数,它将始终返回具有已知值的结构.语法是什么?
struct MyStruct Function(void)
{
return (struct MyStruct){1,2,3};
}
Run Code Online (Sandbox Code Playgroud)
我在返回行上收到编译器错误:
错误:语法错误
有任何想法吗?我正在使用交叉编译器来嵌入目标,所以它可能是我的编译器.
编辑
它是我的编译器.正如cnicutar评论的那样,它是有效的C99代码.
有人指出我可以创建一个变量.我的目标是避免创建一个变量来返回它.
看起来你正在尝试将初始化程序转换为结构:-)
这不是有效的语法.尝试类似的东西:
struct MyStruct Function(void)
{
struct MyStruct s = {1,2,3};
return s;
}
Run Code Online (Sandbox Code Playgroud)
但是为了MyStruct以防万一,最好显示确切的声明.
最明显的方法是创建适当类型的变量:
struct MyStruct Function(void) {
struct MyStruct ret = {1,2,3};
return ret;
}
Run Code Online (Sandbox Code Playgroud)