Clion说cannot resolve type __int128_t
,但无论如何它都会编译。
这是一个错误,如果是,有没有办法绕过它?
int main(int argc, char *argv[]) {
__int128_t test = 2333;
printf("%lld", test);
return 0;
}
答案 0 :(得分:0)
a
不是C标准定义的标准类型。它是一些编译器支持的扩展。您的编译器似乎支持它,因为它编译已发布的代码,但您的开发环境不理解它,并且在包含的头文件中找不到__int128_t
。
可能有一些配置可以告诉您的环境有关编译器的扩展...
请注意,您的代码中还有其他问题:
typedef
<stdio.h>
的{{1}}传递给__int128_t
。无法保证这是正确的。您应该将参数转换为printf
以使%lld
行为正确,但类型(long long)
可能与printf
的值范围不同,因此打印long long
转换后可能会以特定于系统的方式截断值。可能有__int128_t
的扩展格式来处理类型test
的值,请检查编译器/运行时文档。printf
。有些系统在没有最终换行符的情况下不会刷新输出。