Clion无法解析__int128_t,但编译器说不然

时间:2016-07-31 13:33:21

标签: c clion

Clion说cannot resolve type __int128_t,但无论如何它都会编译。

这是一个错误,如果是,有没有办法绕过它?

int main(int argc, char *argv[]) {
    __int128_t test = 2333;
    printf("%lld", test);
    return 0;
}

1 个答案:

答案 0 :(得分:0)

a不是C标准定义的标准类型。它是一些编译器支持的扩展。您的编译器似乎支持它,因为它编译已发布的代码,但您的开发环境不理解它,并且在包含的头文件中找不到__int128_t

可能有一些配置可以告诉您的环境有关编译器的扩展...

请注意,您的代码中还有其他问题:

  • 您不包含typedef
  • 您将格式为<stdio.h>的{​​{1}}传递给__int128_t。无法保证这是正确的。您应该将参数转换为printf以使%lld行为正确,但类型(long long)可能与printf的值范围不同,因此打印long long转换后可能会以特定于系统的方式截断值。可能有__int128_t的扩展格式来处理类型test的值,请检查编译器/运行时文档。
  • 您应该在格式字符串的末尾添加printf。有些系统在没有最终换行符的情况下不会刷新输出。