2

我想在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 unresolved symbol _md5) - 所以我想它必须取消评论。

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

4

1 回答 1

6

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

Visual Studio 2008 仅支持 C90(又名 C89),因此无法编译。

编辑它看起来像 BeeCrypt 最近更改为需要一个有效排除 Visual Studio 的 C99 编译器。您的另一个选择是使用旧版本的 BeeCrypt。

于 2009-07-29T16:45:41.707 回答