找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9188|回复: 1
打印 上一主题 下一主题
收起左侧

通过Keil uVision4 中查看ARM( NUV100) short int、int、long 和long int占用多...

[复制链接]
跳转到指定楼层
楼主
ID:262 发表于 2014-10-21 14:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

查看Keil ARM各种数据类型占用的字节数

笔者正在学习uCOS-II,移植到ARM时考虑到数据类型的定义,但对于Keil MDK编译器的数据类型定义还是很模糊,主要就是区分不了short int、int、long 和long int占用多少字节。为了得到一个权威的答案,改用编译器自身得出。
一、先定义几个变量,用于存放各数据类型的字节数。
#include<stdio.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---Watch1。

由上图可知得出:
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位长度)




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:66501 发表于 2014-10-24 14:08 | 只看该作者
掘墓高手,专挖古墓,一挖一个坑,坑坑见墓。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表