gpt4 book ai didi

c++ - 否定多个类型 std::size_t 的安全方法

转载 作者:搜寻专家 更新时间:2023-10-31 00:17:57 25 4
gpt4 key购买 nike

当我想对 std::size_t 类型的数字取反时, 我通常做 -static_cast<int>(number) .但是,我知道这个数字可能不适合 int .那么,我的问题是,执行此操作的安全便携方式是什么?

最佳答案

没有安全、便携的方法可以做到这一点。

size_t 是无符号类型。无法保证任何有符号整数类型足以容纳 size_t 的最大值。

如果您能够假设您取反的值不是太大,您可以将其转换为 long long(如果您的编译器支持)或 long(如果没有):

size_t s = some_value;
long long negative_s = -(long long)s;

如果担心溢出,可以在转换前比较sLLONG_MAX的值。

关于c++ - 否定多个类型 std::size_t 的安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12081544/

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