C++:初始化、climits 和变量

C++ : initialization, climits & variables

本文关键字:变量 climits 初始化 C++      更新时间:2023-10-16

免责声明,编程新手,通过C++ Prime Plus 第 6 版工作。

我正在通过清单 3.1 工作。

#include <iostream> 
#include <climits>
int main()
{
    using namespace std;
    int n_int = INT_MAX;
    cout << "int is " << sizeof n_int << " bytes." << endl;
    return 0;
}

所以我得到,创建一个变量设置最大 int 值。

但是,有什么理由为什么我不应该也不能去:

cout << "int is " << sizeof (INT_MAX) << " bytes." << endl;

因为它给出了正确的长度。但是当我尝试使用 ( SHRT_MAX ) 时,它会返回 4 个字节,而我希望它会返回 2。

再次使用 (LLONG_MAX) 它返回正确的 8 个字节,但是 (LONG_MAX) 错误地返回 8。

任何澄清都会很棒。

<climits>中定义的值是扩展到整数文本的宏。整数文本的类型是可以保存该值的最小整数类型,但不小于 int

所以INT_MAX将具有类型 int ,因此sizeof INT_MAXsizeof (int) 相同。但是,SHRT_MAX也会有类型 int ,因此sizeof SHRT_MAX不一定等于 sizeof (short)