0

在学习 C++ 时,我最近遇到了宏的用法,并了解到有许多标准宏,例如这个(以及许多其他整数):

#include <cstdint>    
UINT64_MAX

(来自https://en.cppreference.com/w/cpp/types/integer

我真的不明白它是什么,即使这个名字不言自明(我猜?)以及如何在代码中使用它。

编辑:我知道这个宏返回uint64_t可以包含 的最大值我不知道应该如何以及何时使用它。如果你能给出一个书面的例子和一个“常见的”场景,那就完美了。

4

1 回答 1

0

UINT64_MAX用于返回uint64_t可以包含的最大值一种常见的情况是将双精度转换为 uint64_t。我们会 :

  1. 确保它被转换为的 uint64_t 变量大于或等于零。
  2. 它小于或等于 UINT64_MAX (std::numeric_limits 显然也可以。)

这是一个例子:

#include <iostream>
#include <cstdint>

int main() {
    constexpr double a = 6383464.632463948;

    if (b >= 0 && b <= UINT64_MAX) {
        uint64_t b = (uint64_t)a; // Cast the double into the uint64_t variable
        std::cout << "Conversion from double to uint64_t is valid" << std::endl;
        std::cout << "b value is " << b << std::endl;
    }
    else {
        std::cout << "Conversion from double to uint64_t is not valid" << 
std::endl;
    }
}
于 2021-08-07T19:43:51.987 回答