C语言类型占内存大小

C语言类型占内存大小

C语言数据类型

sizeof测试基本数据类型所占字符大小

c 复制代码
#include <stdio.h>

int main()
{
    char a;
    short b;
    int c;
    long d;
    float e;
    double f;

    printf("char  = %d\n", sizeof (a));
    printf("short = %d\n", sizeof (b));
    printf("int   = %d\n", sizeof (c));
    printf("long  = %d\n", sizeof (d));
    printf("float = %d\n", sizeof (e));
    printf("double= %d\n", sizeof (f));
    return 0;
}

运行结果

c 复制代码
char  = 1
short = 2
int   = 4
long  = 4 
float = 4
double= 8

数据模型

32位环境涉及"ILP32"数据模型,是因为C数据类型为32位的int、long、指针。而64位环境使用不同的数据模型,此时的long和指针已为64位,故称作"LP64"数据模型。

现今所有64位的类Unix平台均使用LP64数据模型,而64位Windows使用LLP64数据模型,除了指针是64位,其他基本类型都没有变

LP64意思是long和pointer是64位,

ILP64指int,long,pointer是64位,

LLP64指long long和pointer是64-bit的。

ILP32指int,long和pointer是32位的,

LP32指long和pointer是32位的。

相关推荐
lly2024062 小时前
C 标准库 - `<stdio.h>`
开发语言
沫璃染墨2 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++
jwn9992 小时前
Laravel6.x核心特性全解析
开发语言·php·laravel
迷藏4943 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
功德+n3 小时前
Linux下安装与配置Docker完整详细步骤
linux·运维·服务器·开发语言·docker·centos
明日清晨3 小时前
python扫码登录dy
开发语言·python
我是唐青枫3 小时前
C#.NET gRPC 深入解析:Proto 定义、流式调用与服务间通信取舍
开发语言·c#·.net
JJay.3 小时前
Kotlin 高阶函数学习指南
android·开发语言·kotlin
bazhange3 小时前
python如何像matlab一样使用向量化替代for循环
开发语言·python·matlab
jinanwuhuaguo3 小时前
截止到4月8日,OpenClaw 2026年4月更新深度解读剖析:从“能力回归”到“信任内建”的范式跃迁
android·开发语言·人工智能·深度学习·kotlin