Keil MDK编译器的数据类型定义

 1 #include "usart.h"
 2 int main()
 3 {
 4     USART1_Config();    //串口初始化,以下信息通过串口打印
 5     printf("char: %d\r\n",sizeof(char));
 6     printf("unsigned char: %d\r\n",sizeof(unsigned char));
 7     printf("short: %d\r\n",sizeof(short));
 8     printf("unsigned short: %d\r\n",sizeof(unsigned short));
 9     printf("int: %d\r\n",sizeof(int));
10     printf("unsigned int: %d\r\n",sizeof(unsigned int));
11     printf("long: %d\r\n",sizeof(long));
12     printf("unsigned long: %d\r\n",sizeof(unsigned long));
13     printf("float: %d\r\n",sizeof(float));
14     printf("double: %d\r\n",sizeof(double));
15     while(1);
16 }

通过以上一段代码,得到了Keil MDK编译器对常用数据类型长度的定义。

结果如下:

char: 1
unsigned char: 1
short: 2
unsigned short: 2
int: 4
unsigned int: 4
long: 4
unsigned long: 4
float: 4
double: 8

Keil MDK编译器的数据类型定义

时间: 2024-11-08 19:15:57

Keil MDK编译器的数据类型定义的相关文章

MDK编译器内存分配

转:https://blog.csdn.net/zuixin369/article/details/76195186?locationNum=7&fps=1 Keil MDK编译器完成编译链接后,在调试窗口会出现Code,RO,RW,ZI 四种内存分配区域,下面说明其中的意思. Code区:代码区.该区域除了存放指令外,还有全局.静态及局部变量的初始化值.当函数被调用时,该函数用code区内局部变量初始化值来初始化堆栈区内分配的局部变量. RO区:常量区.该区域存放那种类型的数据呢?有字符串常量

Keil MDK与h-jtag联调

keil MDK也是可以借助h-jtag进行单步调试,写出来与大家一起分享一下. keil MDK编译器使用V4.01版本,下载地址: http://www.embedinfo.com/down-list.asp?id=714   (需要注册一下) h-jtag使用V1.0版本(请注意,一定要用V1.0或者以上版本才可以与mdk兼容),下载地址 http://www.hjtag.com/download/H-JTAG%20V1.0%20Preview.zip 分别安装MDK与h-jtag 两个软

Keil MDK从未有过的详细使用讲解

转自博客:http://blog.csdn.net/zhzht19861011/article/details/5846510 这博主关于MDK 的使用的文章,写的得TM的好  TM的实用! 真心收藏! 熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例,详细的写一下MDK的设置.界面.工具.可能会有些杂乱,但我想所涉及的东西都是最常用的:可能不是

转:Keil MDK从未有过的详细使用讲解

来自:http://blog.csdn.net/zhzht19861011/article/details/5846510 熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例,详细的写一下MDK的设置.界面.工具.可能会有些杂乱,但我想所涉及的东西都是最常用的:可能不是那么的严谨清晰,我想谁也没把我期望成专家!哈,有问题欢迎留言.正式开始.   首

有趣的keil MDK细节(转)

源:有趣的keil MDK细节 1.MDK中的char类型的取值范围是? 在MDK中,默认情况下,char 类型的数据项是无符号的,所以它的取值范围是0-255.它们可以显式地声明为signed char 或 unsigned.因此,定义有符号char类型变量,必须用signed显式声明.我曾读过一本书,其中有一句话:“signed关键字也是很宽宏大量,你也可以完全当它不存在,在缺省状态下,编译器默认数据位signed类型”,这句话便是有异议的,我们应该对自己所用的CPU构架以及编译器熟练掌握.

Keil MDK下如何设置非零初始化变量(转)

源:Keil MDK下如何设置非零初始化变量 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零.如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的. 在给出方法之前,先来了解一下代码和数据的存放规则.属性,以及复位后为何默认非初始化变量所在RAM都被初始化为零了呢. 什么是初始化数据变量,什么又是非初始化数据变量?(因为我

KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data的解释(转)

源:KEIL MDK 查看代码量.RAM使用情况--RO-data.RW-data.ZI-data的解释 KEIL RVMDK编译后的信息 Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 Code是代码占用的空间; RO-data是 Read Only 只读常量的大小,如const型; RW-data是(Read Write) 初始化了的可读写变量的大小; ZI-data是(Zero Initialize) 没有初

KEIL MDK 5.12帮你快速建工程模板的技巧

KEIL 5帮你快速建工程模板的技巧 本人使用keil mdk 5.12有一段时间了,发现keil mdk 5.12里面驱动库比较方便.这个新功能可以节省我们的时间,也可以让初学者能尽快上手和掌握这个芯片.大家以后既就可以很方便的建自己的工程模板了,再也不会为了找芯片的驱动库而烦恼. 今天外我来教大家来怎么使用这个建工程的利器吧. 首先是新建工程吧,如下图步骤: 因为我用的是stm32f401 Necleo,所以芯片型号应该要选择stm32f401te,选好芯片类型后,会弹出一个大的面板,如下图

Keil C编译器的变量存储分配

问题:以下是我编译工程后出现的错误: *** ERROR L107: ADDRESS SPACE OVERFLOW    SPACE:   DATA        SEGMENT: _DATA_GROUP_    LENGTH:  0020H Program Size: data=134.3 xdata=226 code=3544 问题描述:Data数据段的地址空间溢出,从描述可以知道编译器存储了三块信息: 134字节的数据段,226字节的扩展数据段和3544字节的代码段.