integer_literals的正值而不是负值[duplicate]

njthzxwz  于 2023-03-07  发布在  其他
关注(0)|答案(1)|浏览(80)
    • 此问题在此处已有答案**:

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,为什么会这样呢?

ru9i0ody

ru9i0ody1#

在C和C++中没有负整数常量,当你有像-555这样的东西时,它是一个整数常量和一个一元减操作符,一个十进制整数有一个带符号的整型,它不会被提升,所以它会得到预期的类型和值。

相关问题