单元一(2)08C语言程序基本结构及数据类型

上传人:飞*** 文档编号:44883467 上传时间:2018-06-14 格式:DOC 页数:5 大小:311KB
返回 下载 相关 举报
单元一(2)08C语言程序基本结构及数据类型_第1页
第1页 / 共5页
单元一(2)08C语言程序基本结构及数据类型_第2页
第2页 / 共5页
单元一(2)08C语言程序基本结构及数据类型_第3页
第3页 / 共5页
单元一(2)08C语言程序基本结构及数据类型_第4页
第4页 / 共5页
单元一(2)08C语言程序基本结构及数据类型_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《单元一(2)08C语言程序基本结构及数据类型》由会员分享,可在线阅读,更多相关《单元一(2)08C语言程序基本结构及数据类型(5页珍藏版)》请在金锄头文库上搜索。

1、单元一(单元一(2)08C 语言程序基本结构及数据类型语言程序基本结构及数据类型一、Codewarrior 基本文件结构 Codewarrior 中的项目包含的文件结构如下图所示:二、08C 语言基本结构 单片机的程序结构和标准 c 语言的结构基本相同,唯一的区别在于:单片机的 C 语言 程序必须存在一个无线循环。其基本结构如下: include 定义全局变量 定义函数原型 定义常数 main() 定义局部变量初始化while(1) /无限循环 对嵌入式系统来说,无限循环是必须要用到的,其有三种形式:(1) While (1); (2) For (;); (3) Loop: goto Loop

2、; 上述 3 种方式, 第 2 种更好一些,因为它不会产生警告信息:“always true warning”。三、08C 语言数据类型 108C 语言中的数据类型 C 语言的数据类型有基本类型和构造类型两大类。 在 CodeWarrior 中定义的基本数据类型如下所示:构造类型有数组、结构、联合、枚举、指针和空类型。 结构和联合是基本数据类型的组合。 枚举是一个被命名为整型常量的集合。 空类型字节长度为 0,主要有两个用途:一是明确地表示一个函数不返回任何值;二 是产生一个同一类型指针(可根据需要动态地分配给其内存)。 2typedef 定义数据类型 除了可以直接使用 C 提供的标准类型名(

3、如 int、char、float、double、long 等)和自己 定义的结构体、共用体 、指针、枚举类型外,还可以用 typedef 定义新的类型名来代替已 有的类型名。例如: typedef unsigned char INT8U; 指定用 INT8U 代表 unsigned char 类型。这样下面的两个语句是等价的: unsigned char i; 等价于 INT8U i; 用法说明: 用 typedef 可以定义各种类型名,但不能用来定义变量。 用 typedef 只是对已经存在的类型增加一个类型名,而没有创造新的类型。 typedef 与#define 有相似之处,如: typ

4、edef unsigned int INT16U; #define INT16U unsigned int; 这两句的作用都是用 INT16U 代表 unsigned int。但事实上,它们二者是不同的, #define 是在预编译时处理的 ,它只能作简单的字符串替代,而 typedef 是在编译时 处理的。 当不同源文件中用到各种类型数据(尤其是像数组、指针、结构体、共用体等较复杂 数据类型)时,常用 typedef 定义一些数据类型,并把它们单独存放在一个文件中,而 后在需要用到它们的文件中用#include 命令把它们包含进来。 使用 typedef 有利于程序的通用与移植。 3数据类型

5、的选用 嵌入式 C 语言编程不同于一般 C 语言编程的一个显著特点,就是要和程序存储器资源 结合起来,虽然其提供的数据类型十分丰富,但是只有 bit 和 char 等数据类型是机器语言 直接支持的数据类型,用此类数据类型的语句所生成的代码较短;而其它的数据类型如整 型、浮点型等数据要有一定的内部程序或内部函数的支持,相对来说用该类数据类型的语 句生成的代码要长。有些 C 语言程序表面上看起来十分的简单,但在实际编译时,生成的 代码却相当长。因此我们要按照实际需要,尽量选用占用存储空间少的数据类型,可以大 大的减少所生成的代码长度。 例如在 08C 中用不同的数据类型定义 i 时,语句:for(

6、i=0;i10;i+);经编译后生成的 代码长度如下表所示。 通过上表我们知道,不同的数据类型所生成的机器代码长度相差很大,相同类型的数 据类型有无符号对机器代码长度也有影响。在程序编译时生成机器代码长的数据类型的优 先级越高,不同的数据类型在进行程序运算时要转化为高优先级的数据类型,相应的代码 长度也会增长。因此我们应尽可能地使用 bit, char 等机器语言直接支持的数据类型,无符 号数的变量应声明为无符号数,尽可能地减少程序中使用的数据类型的种类。 对8位MCU, 在选择数据类型时,有3条原则: 尽量使用最小的数据类型 尽可能使用无符号数 在表达式内声明数据类型,以便将数据类型减小到最小(强制类型转换)四、Codewarrior 调试基本方法 1.模拟调试器界面2.特点: 功能强大的图形界面(拖&拉操作, 弹出式菜单.) 模块化和可扩展系统(基于组件概念) 不同的组件可以加入: 来自Metrowerks(Codewarrior)公司的组建 来自半导体公司的组件 用户组件对所有的目标和目标接口,界面(GUI)完全相同模拟调试器界面:五、现场实践 编写一段程序,练习自定义数据类型,利用调试器观察变量的内容

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号