隐式转换:uint32到int

时间:2014-11-07 16:37:30

标签: c++ xcode

我正在努力让应用与iPhone 6兼容,而且大多数都遇到了需要解决的类型转换问题。但无论我如何构建这个,我都无法成功完成构建。

inline void MTRand::seed( uint32 *const bigSeed, const uint32 seedLength ){
    // N is set to 628 up above
    register uint32 j = 0;
    register int k = (N > seedLength ? N : seedLength);  // build fail on this line
    // do more stuff

我想把它换成

register int k = (N > seedLength ? (int)N : (int)seedLength);

可行,但我仍然得到 '隐式转换失去整数精度:' const uint32' (又名' const unsigned long')到' int' 错误。我对iOS开发很陌生,所以这可能是我想念的简单内容。有什么提示吗?

1 个答案:

答案 0 :(得分:0)

将所有值转换为(int),而不仅仅是比较。

register int k = ( (int)N > (int)seedLength ? (int)N : (int)seedLength);