int* a和int *a_int和char的区别

int* a和int *a_int和char的区别工作中经常碰到int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t等数据类型,所以有必要对此进行梳理。int_t同类int_t为一个结构的标注,可以理解为type/typedef的缩写,表示它是通过typedef定义的,而不是一种新的数据类型。因为跨平台,不同的平台会有不同的字长,所以利用预编译和typedef可以最有效的维护代码。…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

工作中经常碰到int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t等数据类型,所以有必要对此进行梳理。

int_t同类

int_t 为一个结构的标注,可以理解为type/typedef的缩写,表示它是通过typedef定义的,而不是一种新的数据类型。因为跨平台,不同的平台会有不同的字长,所以利用预编译和typedef可以最有效的维护代码。

  •  int8_t      : typedef signed char;
  •  uint8_t    : typedef unsigned char;
  •  int16_t    : typedef signed short ;
  •  uint16_t  : typedef unsigned short ;
  •  int32_t    : typedef signed int;
  •  uint32_t  : typedef unsigned int;
  •  int64_t    : typedef signed  long long;
  •  uint64_t  : typedef unsigned long long;
Specifier Common Equivalent Signing Bits Bytes Minimum Value Maximum Value
int8_t signed char Signed 8 1 -128 127
uint8_t unsigned char Unsigned 8 1 0 255
int16_t short Signed 16 2 -32,768 32,767
uint16_t unsigned short Unsigned 16 2 0 65,535
int32_t int Signed 32 4 -2,147,483,648 2,147,483,647
uint32_t unsigned int Unsigned 32 4 0 4,294,967,295
int64_t long long Signed 64 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807
uint64_t unsigned long long Unsigned 64 8 0 18,446,744,073,709,551,615

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是无符号数,因此,当变量有可能为负数时,必须使用ssize_t。因为当有符号整型和无符号整型进行运算时,有符号整型会先自动转化成无符号。

int main()
{
    unsigned short a;
    short int b = -1;
    a = b;
    cout << "b=" << b << endl;  //b=-1
    cout << "a=" << a << endl;  //a=65535
}

此外,int 无论在32位还是64位机器中,都是4个字节, 且带符号,可见size_t与int 的区别之处。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191293.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • pr怎么裁剪整个视频画面大小_pr如何截取视频画面的一部分

    pr怎么裁剪整个视频画面大小_pr如何截取视频画面的一部分制作视频,有时候我们只需要视频的一部分,多余的部分就需要给裁剪掉,那么Premiere(pr)怎样剪裁视频画面大小呢。工具/材料AdobePremiereProCS6首先把要剪裁的视频拖动

    2022年8月6日
  • linux 如何安装whl文件,linux安装whl文件

    linux 如何安装whl文件,linux安装whl文件Windows环境:安装whl包:pipinstallwheel->pipinstall**.whl下载whl文件MySQL_python-1.2.5-cp27-none-win32.whlMySQL_python-1.2.5-cp27-none-win_amd64.whl执行pipinstallMySQL_python-1.2.5-cp27-none-win3…

    2022年5月30日
  • java json字符串转list集合

    java json字符串转list集合StringjsonString=”[{“plateNumber”:”1″,”holeNumber”:”A02″,”qcType”:”L”,”value”:”2.36″}”,{“plateNumber”:”1″,”holeNumber”:”A03″,”qcType”:”M”,”value”:”5.36″}]List<QcPlate>listQcPlate=newArr…

    2022年5月14日
  • windows驱动开发教程_windows内核驱动开发

    windows驱动开发教程_windows内核驱动开发1.前言因工作上项目的需要,笔者需要做驱动相关的开发,之前并没有接触过相关的知识,折腾一段时间下来,功能如需实现了,也积累了一些经验和看法,所以在此做番总结。对于驱动开发的开发指引,微软官方文档网站已经提供了很详细的教程文档,并且在Github上提供了一系列典型的例程源码用于开发人员参考。开发人员在具备一定的驱动概念知识后,通过参考官方例程可以很容易实现拥有特定功能的驱动应用程序。Windows驱动程序入门:Windows驱动程序入门-Windowsdrivers|Micros..

    2022年8月30日
  • java字符串类型引用与字符类型引用的面试案例

    java字符串类型引用与字符类型引用的面试案例

    2021年7月16日
  • CS和BS的区别[通俗易懂]

    CS和BS的区别[通俗易懂]1.CS和BS的概念CS,即C/S(Client/Server)结构,是一种客户机和服务器结构。cs也是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。BS即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器,而客户端采用浏览器运行软件。2.CS和BS区别1.开发维护成本cs开发维护成本高于bs。因为因为采用cs结构时,对于不同的客户端要开发不同的程序,而且软件安装调试和升级都需要在所有

    2022年9月10日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号