【发布时间】:2013-10-11 06:27:20
【问题描述】:
我有一些现有的 C 代码:
extern const struct sockaddr_un addr =
{
.sun_family = AF_UNIX,
.sun_path = "myreallylongpath"
};
其中 sun_path 是一个字符数组。
这曾经在旧版本的 GCC 中编译为 C。我现在已将其转换为 C++ 并使用 GCC v4.7.2。我不断收到错误:
“C99 指示符 'sun_path' 外部聚合初始化程序”
难道我在 C++ 中不能做我正在做的事情,还是语法与旧 C 不同?
【问题讨论】:
-
如果要将整个代码转换为 C++,请考虑将构造函数添加到 sockaddr_un 并使用它来创建实例。
-
@NeilKirk:这是来自标准 POSIX C API 的结构。你不能向它添加构造函数(好吧,你可以添加一个命名的构造函数,但我认为这没有多大意义)。
标签: c++ c gcc struct initialization