Im GCC bin ich in der Lage, das Folgende zu tun:
(CachedPath){ino}
inode->data = (struct Data)DATA_INIT;
wo:
struct CachedPath
{
Ino ino;
};
typedef int8_t Depth;
struct Data
{
Offset size;
Blkno root;
Depth depth;
};
#define DATA_INIT {0, -1, 0}
MSVC gibt für diese Art von Umwandlungen den folgenden Fehler aus:
Fehler C2143: Syntaxfehler : ';' fehlt vor '{'
Wie kann ich das in MSVC machen? Weiterhin beachten Sie, dass der Code von C99 konvertiert wurde, wo ich für dies benannte Initialisierer verwendet habe, und dann ähnlich umgewandelt habe. Jegliche Klarheit darüber, wie diese verschiedenen Funktionen zwischen C99 und den Implementierungen von MSVC/GCC von C++ zusammenhängen, wird geschätzt.