1、c语言中的数据类型
整数类型
基本类型
浮点类型
数组类型
构造类型 结构体类型
c语言数据类型
共用体(联合)
指针类型
空类型(void) 函数执行完不需要结果时
2、学习数据类型三要素
(1)存储数据的宽度
(2)存储数据的格式
(3)作用范围(作用域)
3、整数类型
:char short int long 汇编中
char 8bit 1字节 byte
short 16bit 2字节 word
int 32bit 4字节 dword
long 32bit 4字节 历史遗留问题
在反汇编中观察,体验数据宽度的概念
char cTemp = 0xFF; 0xFF
short sTemp = 0xFF; 0x00FF
int nTemp = 0xFF; 0x0000 00FF
char cTemp = 0x12345678; 0x78
short sTemp = 0x12345678; 0x5678
int nTemp = 0x12345678; 0x1234 5678
char == 257 试试 内存中存的1
char == 256
“初始化”: 截断常量值 warning
“初始化”: 从“int”到“char”截断 C4309
整数类型分为有符号(signed)和无符号(unsigned)
类型转换、比较大小和数学运算
**总结:
1.在内存中存储的完全一样
2.在做运算的时候需要注意,你把它当什么就是什么,结果完全不同**
89: void Test()
90: {
96: char cTemp = 0xFF;
004118BE mov byte ptr [cTemp],0FFh
97: short sTemp = 0xFF;
004118C2 mov eax,0FFh
004118C7 mov word ptr [sTemp],ax
98: int nTemp = 0xFF;
004118CB mov dword ptr [nTemp],0FFh
99: printf("%d\n%d",cTemp,sTemp);
004118D2 movsx eax,word ptr [sTemp]
004118D6 mov esi,esp
004118D8 push eax
004118D9 movsx ecx,byte ptr [cTemp]
004118DD push ecx
004118DE push 41685Ch
004118E3 call dword ptr ds:[41A2BCh]
004118E9 add esp,