- 此问题在此处已有答案**:
Why does the most negative int value cause an error about ambiguous function overloads?(3个答案)
6小时前关门了。
在源代码中,我有一个负的int字面值,当我通过libclang解析源代码时,integer_letral函数clang_Cursor_Evaluate和clang_EvalResult_getAsInt为此返回一个正值。
例如,我在源代码中有int a = -555,如果你得到这个integer_value并调用clang_Cursor_Evaluate和clang_EvalResult_getAsInt函数,后者只会返回555,为什么会这样呢?
1条答案
按热度按时间ru9i0ody1#
在C和C++中没有负整数常量,当你有像
-555
这样的东西时,它是一个整数常量和一个一元减操作符,一个十进制整数有一个带符号的整型,它不会被提升,所以它会得到预期的类型和值。