gpt4 book ai didi

c++ - C 宏计算给定编译时常量所需的字节数

转载 作者:搜寻专家 更新时间:2023-10-31 01:21:20 24 4
gpt4 key购买 nike

通常我有一些编译时常数,它也是变量假定的可能值的上限。因此,我有兴趣选择可以容纳这些值的最小类型。例如,我可能知道变量将适合 <-30 000, 30 000> 范围,因此在寻找合适的类型时,我会从 signed short int 开始。但是由于我在平台和编译器之间切换,我想要一个编译时断言来检查常量上限值是否真的适合这些类型。 BOOST_STATIC_ASSERT( sizeof(T) >= required_number_of_bytes_for_number ) 工作正常,但问题是:如何自动确定存储给定编译时常量(有符号或无符号)所需的字节数?我想 C 宏可以完成这项工作?谁能帮我写?我可能会使用 std::numeric_limits::max() 和 min() 而不是计算字节,但随后我将不得不切换到运行时断言 :(

最佳答案

既然这是用 c++ 标记的,我建议使用 Boost.Integer 来进行适当的类型选择。 boost::int_max_value_t< MyConstant >::least会给出您正在寻找的类型。

关于c++ - C 宏计算给定编译时常量所需的字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3901256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com