Visual studio 2010 visualc&x2B+;初始化聚合内联

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它,否则

在g++中,我可以这样做:

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