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位的。

相关推荐
资深web全栈开发1 小时前
[特殊字符]图解 Golang 反射机制:从底层原理看动态类型的秘密
开发语言·后端·golang
顾安r4 小时前
11.8 脚本网页 星际逃生
c语言·前端·javascript·flask
LaoZhangGong1235 小时前
STM32 F103外部晶振8MHz改为12MHz,如何配置?
c语言·stm32·单片机·嵌入式硬件·晶振
独隅6 小时前
在 Lua 中,你可以使用 `os.date()` 函数轻松地将时间戳转换为格式化的时间字符串
开发语言·lua
思麟呀6 小时前
Linux的基础IO流
linux·运维·服务器·开发语言·c++
星释6 小时前
Rust 练习册 :Pythagorean Triplet与数学算法
开发语言·算法·rust
星释6 小时前
Rust 练习册 :Nth Prime与素数算法
开发语言·算法·rust
lkbhua莱克瓦247 小时前
Java基础——集合进阶3
java·开发语言·笔记
多喝开水少熬夜7 小时前
Trie树相关算法题java实现
java·开发语言·算法
QT 小鲜肉7 小时前
【QT/C++】Qt定时器QTimer类的实现方法详解(超详细)
开发语言·数据库·c++·笔记·qt·学习