下面的代码是一个开源C程序的片段。 Visual Studio将较低结构成员中的点指出为错误。怪异语法背后的原理是什么,以及如何让Visual Studio接受它是正确的。我知道这是正确的。我一次又一次地看到它在开源代码中,但每次VS拒绝它,我转储代码。我觉得这次我应该用角来看看公牛。这个结构语法背后的原理是什么?我如何让Visual Studio接受它是正确的?
static struct scrypt_test{
const char *passwd;
cosnt char *salt;
uint64_t N;
unint32_t r;
unint32_t p;
uint8_t result[TESTLEN];
} testcase = {
.passwd = "pleaseletmein",
.salt = "sodiumChloride",
.N = 16,
.r = 8,
.p = 1,
.result = { /*some entries*/}
}
你会得到什么错误? – SLaks
它是结构体变量'testcase'的[指定初始化](https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html)。从C99开始应该支持它。 –
微软对“现代”C的支持历来非常有限。 – molbdnilo