0

我已经解决了许多关于签名/未签名字符的问题。我知道 C++ 中有三种不同的字符类型。目前我有一个用 Visual Studio 编译的大型代码库 - “默认字符无符号”设置设置为“否”。现在我应该将一个特定的项目添加到我们的代码库中(将其集成为我们当前工具集的一部分)。该项目附带一个文档,其中强烈强调它需要默认 char 未签名。

现在我开始怀疑:如果作者需要 char 未签名,为什么他使用“char”而不是“unsigned char”?如果我更改我们的代码库以将“默认无符号字符”设置设置为“是”,会出现什么问题?如果我在我应该添加到我们的代码库中的整个项目中将所有“char”更改为 unsigned char,会出现什么问题?

实际上我可能应该问的是“我应该如何将这个项目添加到我们的代码库而不破坏任何东西”,但这将要求一个解决方案,我不会学到任何东西;)

4

1 回答 1

3

嗯,天哪。你能告诉我们这段代码是从哪里来的,这样我们就可以避免它吗?:)

我的第一直觉是将代码构建为现有项目链接到的单独库,并且在与它交互时要小心。不知道相关代码的确切性质,我不知道这是否可行。

如果你引入的代码真的假设char是无符号的,你应该可以简单地改变它以使其成为一个显式的unsigned char,但这提出了你是否必须在以后合并新版本的代码的问题,所以我仍然更喜欢图书馆解决方案。

于 2010-08-23T07:19:17.573 回答