在C中完成以下操作的最佳方法是什么?
#include <stdio.h>
struct A
{
int x;
};
struct A createA(int x)
{
struct A a;
a.x = x;
return a;
}
struct A a = createA(42);
int main(int argc, char** argv)
{
printf("%d\n", a.x);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译上面的代码时,编译器报告以下错误:
"初始化元素不是常数"
糟糕的是这一行:
struct A a = createA(42);
Run Code Online (Sandbox Code Playgroud)
有人可以解释什么是错的吗?我不是很有经验C.谢谢!