【问题标题】:Conflicting types for 'memchr' [closed]'memchr' 的冲突类型 [关闭]
【发布时间】:2015-07-27 11:16:44
【问题描述】:

我目前正在尝试修改一个用 C 编写的库(ASN.1 编译器),以便可以在 C++ Builder (XE6) 中编译和使用它。 这样做时,我遇到了错误“'memchr' 的冲突类型”(在 cstring 中)。

经过一番研究,似乎这个问题来自C和C++代码混合的事实。但是,当我使用 C++ Builder 及其编译器时,由于它们与 GCC 编译器有关,因此我无法使用我在其中阅读的文章中建议的解决方案。

有什么办法可以解决这个错误?

谢谢

【问题讨论】:

  • 请显示触发错误的代码行,以及所涉及的所有变量的声明。

标签: c++ c c++builder c-strings c++builder-xe6


【解决方案1】:

您可能会混合使用cstringstring.h。不要这样做。

前者声明:

void * memchr(void *, int, size_t);

后者是

void * memchr(const void *, int, size_t);

它们不是同一类型。

【讨论】:

  • 抱歉评论晚了,我想我不能因为话题是“搁置”。感谢您的回答,我已经尝试不混合这两个包含,但没有成功,但我可能错过了其中一些。我已经重新组织了我的代码,现在我不再有这个问题了。祝你有美好的一天。
  • 混合这两个标题应该没问题,你会得到memchr的两个版本。很高兴在这里看到 MCVE。
猜你喜欢
  • 1970-01-01
  • 2018-04-30
  • 1970-01-01
  • 1970-01-01
  • 2013-08-04
  • 1970-01-01
  • 1970-01-01
  • 2017-03-18
  • 2020-07-08
相关资源
最近更新 更多