【发布时间】:2014-08-18 11:50:01
【问题描述】:
我正在尝试使用其他人编写的 c++ 编译器编译 c 代码,我总是得到这个“错误:在‘.’标记之前的预期主表达式。”在这种情况下如何初始化联合?提前致谢。
union v16b {
v16qi v;
uint8_t b[16];
uint32_t dw[4];
};
union v8w {
v8hi v;
int16_t w[8];
};
union v2qw {
v2di v;
uint64_t uq[2];
};
static inline void sd(v16qi a, v16qi b, v16qi c, v16qi d, uint16_t local_mean[4], int16_t *response)
{
const union v16b zero = { .b = { 0 }};
const union v16b shuf = { .b = { 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15 }};
......
}
【问题讨论】:
-
C++ 不支持 C99 (link) 的指定初始化语法。
-
将 C 代码提供给 C++ 编译器通常不是一个好主意。最好将其编译为 C 并与使用它的 C++ 链接。
标签: c++ initialization initializer-list