我想在VS2008下编译beecrypt库。但是以下几种结构会产生语法错误(C2059语法错误:'。'):
const hashFunction md5 = {
.name = "MD5",
.paramsize = sizeof(md5Param),
.blocksize = 64,
.digestsize = 16,
.reset = (hashFunctionReset) md5Reset,
.update = (hashFunctionUpdate) md5Update,
.digest = (hashFunctionDigest) md5Digest
};
VC ++不接受开头的点。如果我对上述内容发表评论,我稍后会收到链接错误(LNK2001未解析的符号_md5) - 所以我想它必须取消注释。
这个结构是什么?我需要什么?我如何告诉VS2008编译它?
答案 0 :(得分:6)
这种struct
初始化是C99(ISO / IEC 9899:1999)的一个特征。在最新标准之前,它不是有效的C ++或C.
Visual Studio 2008仅支持C90(又名C89),因此不会编译。
编辑看起来BeeCrypt最近更改为需要一个C99编译器,它有效地排除了Visual Studio。您可以选择使用较旧版本的BeeCrypt。