C语言定义的变量有哪些?分别存储几个字节?你好,一个八年C语言编程经验的工程师来回答你的提问,关于C语言定义的变量有哪些?分别存储几个字节?根据我的经验,回答如下:首先,考虑不同硬件平台的特性问题可以
C语言定义的变量有哪些?分别存储几个字节?
你好,一个八年C语言编程经验的工程师来回答你的提问,关于C语言定义的变量有哪些?分别存储几个字节?根据我的经验,回答如下:
首先,考虑不同硬件平台的特性问题
可以说C语言是一门跨平台可编译的编程语言,同一段代码,只要对应的硬件平台有编译器的支持,就可以编译运行,所以我们在说C语言的变量类型和存储空间时首先要考虑平台的差异,比如我们8位的单片机80C51,16位的Intel 8086处理器,我们的32位的ARM和PowerPc,或者DSP芯片,再比如我们常见的64位MIPS处理器,它们有不同的指令集,编译器,还有支持的位数,同一个C语言的类型,在不同处理器上可能占有的空间不一样,所以我以下回答拿最常见的32位处理器为例说明。
其次,关于C语言常用变量类型
C语言中变量的类型基本分为:整型,浮点型,字符型,数组,结构体,枚举和联合体等,下面分类说明:
1、整型变量
一般整型变量 就是我们经常写的int型,整型变量又分为短整型short int 。由于符号的加入,又分为有符号和无符号之分。所以总结如下:
无符号整型 unsigned int
有符号整型 #28signed#29 int
无符号半整型 unsigned short #28int#29
有符号半整型 #28signed#29 short #28int#29
括号内部分可省略
2、浮点型
有单精度和双精度之分:
单精度 float
双精度 double
3、字符型
按有无符号:
有符号 #28signed#29 char
无符号 unsigned char
4、数组
按纬度分
一维数组 type Buffer[ ]
二维数组 type Buffer[ ][ ]
多维数组 type Buffer[ ][ ]……[ ]
5、结构体
struct name
{
type1 value1;
type2 value2
……
typen valuen
}
6、枚举
enum name
name1,
name2,开云体育
……
namen
}
7、联合体
union name
{
value1 ,
value2,
……开云体育
valuen欧洲杯下注
}
然后,关于不同类型存储字节数
32位处理器前提下
整型:4字节
短整型:2字节
字符型:1字节
数组: 类型字节数#2A数组元素个数
结构体:结构体内所有元素空间和
备注:考虑编译器对于结构体的字节对齐操作,可使用#pragma pack#28n#29预编译指令,对齐结构体,然后计算
枚举:4字节
联合体:体内最大元素所占空间
最后,动态获取变量大小
如果不确定当前硬件平台,指定变量的占用空间情况,可使用sizeof关键字进行计算,比如sizeof#28int#29,会计算出占用字节数,括号可省略。
以上回答是我个人的经验总结,纯手工敲键盘打出来的,希望对你有帮助。
喜欢可以点赞,关注哦。
本文链接:http://8kx08s.nsremicon.com/product/list_199.html
一个像素占多少位转载请注明出处来源