tag 标签: 查看keil

相关博文
  • 热度 8
    2011-11-1 11:20
    8117 次阅读|
    0 个评论
      笔者正在学习uCOS-II,移植到ARM时考虑到数据类型的定义,但对于Keil MDK编译器的数据类型定义还是很模糊,主要就是区分不了short int、int、long 和long int占用多少字节。为了得到一个权威的答案,改用编译器自身得出。 一、先定义几个变量,用于存放各数据类型的字节数。 #includestdio.h unsigned char a,b,c,d,e,f,g; main() {    a=sizeof(char);    b=sizeof(short int);    c=sizeof(int);    d=sizeof(long);    e=sizeof(long int);    f=sizeof(float);    g=sizeof(double);    while(1); } 二、查看各变量的存放地址。View---Symbols Window。   三、查看各地址存放的值。View---memory Window。   由上图可知得出: char占用1个字节 short int占用2字节 int占用4字节 long占用4字节 long int占用4字节 float占用4字节 double占用8字节 我们即可这样定义宏: typedef unsigned char    uint8;      // 无符号8位整型变量 typedef signed   char    int8;       // 有符号8位整型变量 typedef unsigned short   uint16;     // 无符号16位整型变量 typedef signed   short   int16;      // 有符号16位整型变量 typedef unsigned int     uint32;     // 无符号32位整型变量 typedef signed   int     int32;      // 有符号32位整型变量 typedef float            fp32;       // 单精度浮点数(32位长度) typedef double           fp64;       // 双精度浮点数(64位长度)