Clion 无法解析 __int128_t 但编译器另有说明

Clion cannot resolve __int128_t but compiler say otherwise

Clion 说 cannot resolve type __int128_t,但它仍然可以编译。

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

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

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

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

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

  • 你不包括<stdio.h>
  • 您将 __int128_t 传递给 printf 以获得格式 %lld。不能保证这是正确的。您应该将参数转换为 (long long) 以使 printf 正确运行,但类型 long long 可能与 __int128_t 具有不同的值范围,因此打印 test转换后可能会以系统特定的方式截断该值。 printf 可能有一种扩展格式来处理 __int128_t 类型的值,请查看您的 compiler/runtime 文档。
  • 您可能应该在格式字符串的末尾添加一个 \n。某些系统在没有最终换行符的情况下不会刷新输出。