如何将c结构定义转换为c ++

Tho*_*gon 2 c c++ linux tcp

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)

cni*_*tar 9

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东西被称为"指定初始化器".