[英]How to convert c struct definitions to c++
iov[0] = (struct iovec) {
.iov_base = &req,
.iov_len = sizeof(req)
};
我正在尝试将一些代码从ss网络实用程序转换为c ++,上面和类似的代码一直在给出这些错误:
main.cpp|83|error: expected primary- expression before ‘struct’
main.cpp|83|error: expected ‘)’ before ‘struct’
C ++不支持该语法。 尝试这个:
iovec iov[2];
iov[0].iov_base = &req;
iov[0].iov_len = sizeof req;
/* ... */
或者可能:
iovec iov[] = {
{
&req, sizeof req
},
/* ... */
}
你正在尝试的是一个名为“复合文字”的C99功能。 此外, .iov_base
事物被称为“指定初始化程序”。
C ++中不存在复合文字。 您可以单独指定结构成员作为cnicutar
建议,或者您也可以定义临时对象,然后将其分配给iov
第一个数组元素。 像这样:
iovec iov_temp = {&req, sizeof req};
iov[0] = iov_temp;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.