gpt4 book ai didi

c - 在 C 中初始化全局结构

转载 作者:太空狗 更新时间:2023-10-29 16:33:07 26 4
gpt4 key购买 nike

在 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;
}

当我尝试编译上面的代码时,编译器报如下错误:

“初始化元素不是常量”

错误的是这条线:

struct A a = createA(42);

谁能解释一下哪里出了问题?我在 C 方面不是很有经验。谢谢!

最佳答案

struct A a = { .x = 42 };

更多成员:

struct Y {
int r;
int s;
int t;
};

struct Y y = { .r = 1, .s = 2, .t = 3 };

你也可以这样做

struct Y y = { 1, 2, 3 };

同样的事情适用于 union ,您不必包括所有成员,甚至不必按正确的顺序排列它们。

关于c - 在 C 中初始化全局结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2521927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com