函数中的编译错误在C中返回结构

1 c

我一直收到这个编译错误:

错误:在'&'标记之前预期';',','或')'

在下面的标记行上:

//128 bit vector struct (4 integers)
typedef struct {
  int w, x, y, z;
} iVector4;

iVector4 SSEadd(iVector4 &v1, iVector4 &v2)  // <-- this line
{
  iVector4 vr;
  asm
  {
    MOV EAX v1
    MOV EBX v2
    //
    MOVUPS XMM0, [EAX]
    MOVUPS XMM1, [EBX]
    //
    PADDD XMM0 XMM1
    MOVUPS [rv]
  }
  return rv;
}
Run Code Online (Sandbox Code Playgroud)

我真的看不出有什么问题:似乎是什么问题?

编辑:

嗨,谢谢你的回复.

我正在使用gcc作为编译器,我意识到我提供的汇编代码也是错误的.我想知道是否最好使用-msse/-msse2中的built_in函数.

另外,从v4si这样的向量加载和提取值的最有效方法是什么?

我发现从载体中加载和提取是一种代价高昂的操作.

当你说sse intrinsics时,你究竟是什么意思?

谢谢你的帮助.

Kar*_*tel 7

C没有参考.您需要为这些编译为C++.