Arm 64位迁移
C语言数据模型ILP32,LP64异同
Data Type | ILP32(bits) | LP64(bits) |
---|---|---|
char | 8 | The Same |
short | 16 | the Same |
int | 32 | the Same |
long long | 64 | the Same |
long | 32 | 64 |
pointer | 32 | 64 |
迁移风险点
- 数据截断
- 缺乏原型的截断 : 若函数被调用时没有指定函数原型,返回值将是32位的
int
,
- 缺乏原型的截断 : 若函数被调用时没有指定函数原型,返回值将是32位的
- 格式指定符
指定32bits 长度。 - 赋值截断
- 由大转小 : 数据类型长度由大转小,将导致数据截断。
- 被截断的参数
- 转换截断
More details plz see:
ARM.Reference_Manual