我在C一些現有的代碼:在一個恆定結構字符數組的靜態初始化從C到C++
extern const struct sockaddr_un addr =
{
.sun_family = AF_UNIX,
.sun_path = "myreallylongpath"
};
凡sun_path是一個字符陣列。
這個在舊版本的GCC中用於編譯爲C語言。我現在已經將它轉換爲C++並使用GCC v4.7.2。我不斷收到錯誤:
"C99 designator 'sun_path' outside aggregate intializer"
是不可能做我在C++中做的事情,或者是不同於舊的C語法?
如果您在整個代碼轉換爲C++,考慮增加一個構造函數來sockaddr_un並用它來創建實例。 –
@NeilKirk:這是一個來自標準POSIX C API的結構。你不能向它添加構造函數(好的,你可以添加一個命名構造函數,但我認爲它沒有多大意義)。 –