C或C++中的标准宏是否代表int32_t,int64_t的最大值和最小值?

xuh*_*dev 2 c c++

C或C++中是否有任何宏表示int32_t和int64_t的最大值和最小值?我知道它可以由字面上自己定义,但如果有一个标准的宏,它会更好.请注意我不会询问最大的int,long等.但intXX_t

jua*_*nza 9

在C++中,存在std::numeric_limits::min()和std::numeric_limits::max()在<limits>标头:

std::cout << std::numeric_limits<std::int32_t>::min() << std::endl;
Run Code Online (Sandbox Code Playgroud)

等等.在C中,报头<stdint.h>定义INT32_MIN,INT32_MAX等.这些也都在C++可用<cstdint>标题.


Vla*_*cow 5

在C++中,您可以使用此标头中声明的标头<limits>和类std::numeric_limts.

要知道int32_t和int64_t类型的最大值和最小值,您可以编写例如

#include <cstdint>
#include <limits>

//...

std::cout << std::numeric_limits<int32_t>::max() << std::endl;
std::cout << std::numeric_limits<int32_t>::min() << std::endl;
std::cout << std::numeric_limits<int64_t>::max() << std::endl;
std::cout << std::numeric_limits<int64_t>::min() << std::endl;
Run Code Online (Sandbox Code Playgroud)

在C中,您应该包含标头<stdint.h>并使用标头中定义的相应宏作为示例

INT32_MIN
INT32_MAX
INT64_MIN
INT64_MAX
Run Code Online (Sandbox Code Playgroud)