gpt4 book ai didi

c - 你如何在 C 中定义一个接受结构指针参数的宏?

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:49 25 4
gpt4 key购买 nike

我在执行以下任务时遇到了问题。特别是,我有一个结构:

typedef struct {
int x;
int y;
} foo;

我正在尝试将以下操作定义为宏:

#define DO_SOMETHING(a,b) ((foo){a.x + b.x, a.y + b.y})

我尝试运行下面的代码,但我从编译器中收到一个错误,指出 左操作数为“.”必须是指向结构/union 的指针

int main()
{
foo a = {1,2};
foo b = {3,4};
foo c = DO_SOMETHING(a,b);
return 0;
}

我环顾四周想找出我做错了什么,但一直找不到好的答案。我想知道我是否可以得到一些帮助?

谢谢。

最佳答案

显然您正在使用 C89/C90 的编译器。

1999 或之后定义的语言应该按原样接受您的程序。
C99 中引入了“复合文字”。

关于c - 你如何在 C 中定义一个接受结构指针参数的宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28519695/

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