【发布时间】:2020-12-15 16:10:33
【问题描述】:
我正在使用的 rust 项目依赖于fixed_hash 0.2.2。而且我需要将一个 H160 与文字进行比较(模式完全知道 my_var==0xdac17f958d2ee523a2206206994597c13d831ec7)。
在内部,H160 类型只是一个指向与_Extint() 一样编码的纯整数的指针。由于我已经需要将值传递给 C 模块,我正在考虑从那里进行比较。
问题是clang中的整数文字被读取为64位整数,所以
const _ExtInt(160) my_const=0xdac17f958d2ee523a2206206994597c13d831ec7;
<source>:1:28: error: integer literal is too large to be represented in any integer type
那么如何在大端中将0xdac17f958d2ee523a2206206994597c13d831ec7 分配给my_const?
【问题讨论】:
-
是您自己的类型还是某个库中的类型?请提供一个可重现的最小示例。
-
@PitaJ 你的意思是
_Extint()?它是 clang 支持的非标准原生类型。 blog.llvm.org/2020/04/… -
您的链接表明
_ExtInt文字未实现(“未来扩展”下的最后两段)。 -
@NateEldredge 但 6 个月后,它成为 clang 版本 12 的一部分。
-
but 6 months later, it s part of clang version 12你有这方面的参考吗?如果是,你为什么不使用它?