C/C++ 整数类型的长度

参考 cppreference.cn

在某些语言中,整数类型的长度是固定的,如java中

  • char 8
  • short 16
  • int 32
  • long 64

可是C/C++ 与机器相关,整数类型长度与平台有关

先可以记一个简单的

按照C标准:

  • char >= 8
  • short >= 16
  • int >= 16
  • long >= 32
  • long long >= 64

在C标准中同平台一定保证
1 == sizeof(char) ≤ sizeof(short) ≤ sizeof(int) ≤ sizeof(long) ≤ sizeof(long long)

而且C/C++ 的整数类型定义的形式也很多,现在给出长度等价表格

  • char
    char , signed char , unsigned char
  • short
    short , signed short , unsigned short , short int , signed short int, unsigned short int
  • int
    int , signed int , unsigned int , signed , unsigned
  • long
    long , signed long , unsigned long , long int , signed long int, unsigned long int
  • long long
    long long , signed long long , unsigned long long, long long int , signed long long int, unsigned long long int

现在引入C整数类型数据模型 的概念

数据模型确定整数类型的大小,不同的平台使用的数据模型不同

列举4种常用的数据模型

  • 32 位系统
    • LP32 或 2/4/4 ( int 是 16 位,long 和指针是 32 位)
      Win16 API
    • ILP32 或 4/4/4 ( int、long 和指针是 32 位);
      Win32 API
      Unix 和类 Unix 系统 (Linux, Mac OS X)
  • 64 位系统
    • LLP64 或 4/4/8 ( int 和 long 是 32 位,指针是 64 位)
      Win64 API
    • LP64 或 4/8/8 ( int 是 32 位,long 和指针是 64 位)
      Unix 和类 Unix 系统 (Linux, Mac OS X)
相关推荐
SuperByteMaster7 分钟前
timer.c 介绍
c语言
知无不研28 分钟前
lambda表达式的使用(3)
开发语言·c++·lambda
cfm_29141 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
C++ 老炮儿的技术栈2 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐
qq_448011162 小时前
C语言中的柔性数组
c语言·开发语言·柔性数组
小白学大数据2 小时前
长周期爬虫的数据一致性:断点续爬 + 事务回滚保障采集质量
开发语言·爬虫·测试工具
zlinear数据采集卡3 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
Poo_Chai3 小时前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
瑞码空间3 小时前
Java 图形界面(GUI)完整知识点手册
java·开发语言·图形界面·swing
小努蛋4 小时前
linux编译openresty异常问题,lua_cjson.c:706:5: 错误: ‘for‘ 循环初始化声明只在 C99 或 C++ 模式下允许
开发语言·lua·openresty