c - 在 C 中将 "direct"结构作为函数传递

标签 c function structure

我有一个关于 C 中结构的简单问题。

我有这个结构和这个函数:

struct Vec2
{
  int x;
  int y;
}

void draw(Sprite* sprite, struct Vec2 pos);

有没有在 C++ 中做等效的事情?

draw(foo, new Vec2(10, 20));

我试过了,但编译器不同意我的观点:

draw(foo, {10, 20} );

有人帮忙吗?

编辑:我在 C++ 模式下使用 Visual C++ 2008 Express,但对于我的学校,我必须直接用 C 编写代码,而不是 C++

最佳答案

如果您的编译器支持 C99 或更高版本,您可以使用复合文字:

draw(foo, (struct Vec2){10, 20});

或者,如果您想更明确地说明成员名称:

draw(foo, (struct Vec2){.x = 10, .y = 20});

(请注意,Microsoft 的 C 编译器不支持 C99,这可能会限制代码的可移植性。)

关于c - 在 C 中将 "direct"结构作为函数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15507847/

相关文章:

c - 如何交替交换大写和小写?

excel - 子函数和函数之间的区别: what does "return a value" mean?

C:如何计算结构体中的项目数?

c - c 有点生疏,如何打印此结构的有用信息?

c - 如何使用 libpng 将 C 代码中的 png 图像解码为原始字节?

c - 在包含三元运算符的表达式中使用括号

c++ - 模板成员函数无法自动推断类型

找不到函数的 C++ 错误标识符?

c - 将已解析的 xml 数据映射到结构中

r - R中的绘图列表结构