g ++编译器抱怨相关类型之间的转换(从int到enum,从void *到class * ...)

时间:2010-04-21 16:49:20

标签: g++ types compilation

g ++编译器抱怨相关类型之间的转换(从int到enum,从void *到class *,从const char *到unsigned char *等)。编译器将此类转换处理为错误,并且不会进一步编译。它只在我使用Dev-C ++ IDE进行编译时才会发生,但是当我编译相同的代码(使用Dev-C ++使用的编译器)时,不会出现这样的错误(甚至是警告)。 如何消除此类错误?

2 个答案:

答案 0 :(得分:2)

我怀疑在一种情况下,您将代码编译为C,另一种编译为C ++。在C ++中,没有从void *到任何其他类型的指针的隐式转换,并且没有将其诊断为错误的C ++编译器将被破坏。您需要提供有关编译代码的更多详细信息。

此外,DevC ++是一段非常糟糕的代码。这是有缺陷的,不再是积极开发,也不是丑陋的。您应该认真考虑切换到更现代和更强大的IDE,例如Code::Blocks

答案 1 :(得分:0)

在符合C ++的标准中,不允许所有隐式转换。 G ++只是强制执行这些规则。