变量中的点?VC9在构建beecrypt时会出现解析错误

2 c c++ c99 visual-studio

我想在VS2008下编译beecrypt库.但是以下几种结构会产生语法错误(C2059语法错误:'.'):

const hashFunction md5 = {
.name = "MD5",
.paramsize = sizeof(md5Param),
.blocksize = 64,
.digestsize = 16,
.reset = (hashFunctionReset) md5Reset,
.update = (hashFunctionUpdate) md5Update,
.digest = (hashFunctionDigest) md5Digest
};
Run Code Online (Sandbox Code Playgroud)

VC++不接受开头的点.如果我评论上面的内容,我稍后会收到链接错误(LNK2001未解析的符号_md5) - 所以我想它必须取消注释.

这个结构是什么?我需要什么?我如何告诉VS2008编译它?

CB *_*ley 6

这种类型的struct初始化是C99(ISO/IEC 9899:1999)的一个特征.在最新标准之前,它不是有效的C++或C.

Visual Studio 2008仅支持C90(又名C89),因此不会编译.

编辑看起来BeeCrypt最近改为需要一个有效排除Visual Studio的C99编译器.您可以选择使用旧版本的BeeCrypt.