我有一个关于 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/