HI expert:
最近一直在看ARMv8架构的spec,在网上下载了一个的编译器,请问在具体使用ARMv8时和之前在ARMv7上关于各种数据类型所占的字节数有区别吗?比如,int, long, long long, pointer等数据类型的大小.
麻烦解答一下,谢谢!然后能够推荐一款编译器用于Cortex-A53开发?
不同编译器、不同的架构会存在不同,这个不能依赖编译器,正是为了解决题主担心的问题,ANSI-C才引入了stdint.h
所以,以后不要用编译器自己的类型,应该用 stdint.h里面定义的类型,来增强代码的可移植性。
常见的数据类型有:
uint8_t int8_t
uint16_t int16_t
uint32_t int32_t
uint64_t int64_t
...
另外bool是在stdbool.h里面定义的。
通常我们在代码里面会这么写:
#include <stdint.h>
#include <stdbool.h>
谢谢!
之前在ARMv7中的编译器使用的是ILP32,即int型是32位的,long型和指针都是32-bit.
我的意思是在ARMv8架构的A64模式下我的这些数据类型是多少字节的?