C++中int8_t int16_t、int32_t、int64_t、uint8_t等学习

转自:https://blog.csdn.net/yz930618/article/details/84785970

1. int_t类型

int_t 是通过typedef定义的,t表示typedef,因为跨平台,不同的平台会有不同的字长,所以利用预编译和typedef可以最有效的维护代码。

typedef unsigned char        uint8_t;
typedef signed char        int8_t;
typedef unsigned short int    uint16_t;
typedef short int        int16_t;
typedef unsigned int        uint32_t;
typedef int            int32_t;
typedef unsigned long int    uint64_t;
typedef long int        int64_t;

int 无论在32位还是64位机器中,都是4个字节, 且带符号。

2.size_t与ssize_t

 size_t主要用于计数,如sizeof函数返回值类型即为size_t。在不同位的机器中所占的位数也不同,size_t是无符号数,ssize_t是有符号数。

  • 在32位机器中定义为:typedef  unsigned int size_t; (4个字节)
  • 在64位机器中定义为:typedef  unsigned long size_t;(8个字节)

size_t多用在for循环中, 

for (size_t i = 0; i < n; i++){
}

3.最大值 

https://blog.csdn.net/lanyang123456/article/details/79304271

int8 -128 ~ 127
uint8 0 ~ 255
int16 -32768 ~ 32767 (3万多)
uint16 0 ~ 65535 (6万多)
int32 -2147483648 ~ 2147483647 (21亿多)
uint32 0 ~ 4294967295 (42亿多)
int64 -9223372036854775808 ~ 9223372036854775807 (922亿亿多)
uint64 0 ~ 18446744073709551615 (1844亿亿多) 

4.limits

用宏定义来表示最大最小值,有时候会记不清宏定义具体是什么。

所以可以使用limit来,很方便:

#include <limits>
#include <iostream>

int main() {
    std::cout << "int max: " << std::numeric_limits<int>::max() << std::endl;
    std::cout << "float max: " << std::numeric_limits<float>::max() << std::endl;
    std::cout << "double max: " << std::numeric_limits<double>::max() << std::endl;
}

  

posted @ 2022-09-21 10:18  lypbendlf  阅读(3862)  评论(0编辑  收藏  举报