iov[0] = (struct iovec) {
.iov_base = &req,
.iov_len = sizeof(req)
};
Run Code Online (Sandbox Code Playgroud)
我正在尝试将一些代码从ss网络实用程序转换为c ++,上面和类似的代码一直在给出这些错误:
main.cpp|83|error: expected primary- expression before ‘struct’
main.cpp|83|error: expected ‘)’ before ‘struct’
Run Code Online (Sandbox Code Playgroud)
C++不支持该语法.试试这个:
iovec iov[2];
iov[0].iov_base = &req;
iov[0].iov_len = sizeof req;
/* ... */
Run Code Online (Sandbox Code Playgroud)
或者可能:
iovec iov[] = {
{
&req, sizeof req
},
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
你正在尝试的是一个名为"复合文字"的C99功能.此外,该.iov_base东西被称为"指定初始化器".