Visual studio 2010 visualc&x2B+;初始化聚合内联
在g++中,我可以这样做:Visual studio 2010 visualc&x2B+;初始化聚合内联,visual-studio-2010,Visual Studio 2010,在g++中,我可以这样做: struct s { int a, b; }; void MyFunction(s) { } int main() { MyFunction((s) { 0, 0 }); return 0; } 然而,在VisualStudio中,它不起作用。有没有什么方法可以让它工作或使用其他语法,而不用创建变量并初始化它(也不用向结构中添加构造函数,因为这样会使它无法聚合,并且无法在聚合中初始化)?我的C有点生疏,但是,除非您使用typedef它,否则
struct s
{
int a, b;
};
void MyFunction(s) { }
int main()
{
MyFunction((s) { 0, 0 });
return 0;
}
然而,在VisualStudio中,它不起作用。有没有什么方法可以让它工作或使用其他语法,而不用创建变量并初始化它(也不用向结构中添加构造函数,因为这样会使它无法聚合,并且无法在聚合中初始化)?我的C有点生疏,但是,除非您使用
typedef
它,否则您不是必须使用struct s
吗?大概是这样的:
struct s
{
int a, b;
};
void MyFunction(struct s) { }
int main()
{
MyFunction((struct s) { 0, 0 });
return 0;
}
或
好吧,傻我。。那么这和这里的问题是一样的,所以我想除了创建一个变量,没有其他选择。
typedef struct s
{
int a, b;
} s_t;
void MyFunction(s_t) { }
int main()
{
MyFunction((s_t) { 0, 0 });
return 0;
}