虫虫首页|资源下载|资源专辑|精品软件
登录|注册

typedef

typedef是在计算机编程语言中用来为复杂的声明定义简单的别名,它与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。
  • C51中的关键字及用途说明

    C51 中的关键字关键字 用途 说明auto 存储种类说明 用以说明局部变量,缺省值为此break 程序语句 退出最内层循环case 程序语句 Switch 语句中的选择项char 数据类型说明 单字节整型数或字符型数据const 存储类型说明 在程序执行过程中不可更改的常量值continue 程序语句 转向下一次循环default 程序语句 Switch 语句中的失败选择项do 程序语句 构成do..while 循环结构double 数据类型说明 双精度浮点数else 程序语句 构成if..else 选择结构enum 数据类型说明 枚举extern 存储种类说明 在其他程序模块中说明了的全局变量flost 数据类型说明 单精度浮点数for 程序语句 构成for 循环结构goto 程序语句 构成goto 转移结构if 程序语句 构成if..else 选择结构int 数据类型说明 基本整型数long 数据类型说明 长整型数register 存储种类说明 使用CPU 内部寄存的变量return 程序语句 函数返回short 数据类型说明 短整型数signed 数据类型说明 有符号数,二进制数据的最高位为符号位sizeof 运算符 计算表达式或数据类型的字节数static 存储种类说明 静态变量struct 数据类型说明 结构类型数据swicth 程序语句 构成switch 选择结构typedef 数据类型说明 重新进行数据类型定义union 数据类型说明 联合类型数据unsigned 数据类型说明 无符号数数据void 数据类型说明 无类型数据volatile 数据类型说明 该变量在程序执行中可被隐含地改变while 程序语句 构成while 和do..while 循环结构ANSIC 标准关键字关键字 用途 说明bit 位标量声明 声明一个位标量或位类型的函数sbit 位标量声明 声明一个可位寻址变量

    标签: C51

    上传时间: 2013-10-08

    上传用户:waves_0801

  • DS1820 C51 子程序 (一线数据传输)

    //芯片资料请到www.elecfans.com查找 //DS1820 C51 子程序//这里以11.0592M晶体为例,不同的晶体速度可能需要调整延时的时间//sbit DQ =P2^1;//根据实际情况定义端口 typedef unsigned char byte;typedef unsigned int  word; //延时void delay(word useconds){  for(;useconds>0;useconds--);} //复位byte ow_reset(void){  byte presence;  DQ = 0; //pull DQ line low  delay(29); // leave it low for 480us  DQ = 1; // allow line to return high  delay(3); // wait for presence  presence = DQ; // get presence signal  delay(25); // wait for end of timeslot  return(presence); // presence signal returned}     // 0=presence, 1 = no part //从 1-wire 总线上读取一个字节byte read_byte(void){  byte i;  byte value = 0;  for (i=8;i>0;i--)  {    value>>=1;    DQ = 0; // pull DQ low to start timeslot    DQ = 1; // then return high    delay(1);  //for (i=0; i<3; i++);     if(DQ)value|=0x80;    delay(6); // wait for rest of timeslot  }  return(value);} //向 1-WIRE 总线上写一个字节void write_byte(char val){  byte i;  for (i=8; i>0; i--) // writes byte, one bit at a time  {    DQ = 0; // pull DQ low to start timeslot    DQ = val&0x01;    delay(5); // hold value for remainder of timeslot    DQ = 1;    val=val/2;  }  delay(5);} //读取温度char Read_Temperature(void){  union{    byte c[2];    int x;  }temp;   ow_reset();  write_byte(0xCC); // Skip ROM  write_byte(0xBE); // Read Scratch Pad  temp.c[1]=read_byte();  temp.c[0]=read_byte();  ow_reset();  write_byte(0xCC); //Skip ROM  write_byte(0x44); // Start Conversion  return temp.x/2;}

    标签: 1820 C51 DS 程序

    上传时间: 2013-11-03

    上传用户:hongmo

  • 16 16点阵显示汉字原理及显示程序

    16 16点阵显示汉字原理及显示程序 #include "config.h" #define                DOTLED_LINE_PORT        PORTB #define                DOTLED_LINE_DDR                DDRB #define                DOTLED_LINE_PIN                PINB #define                DOTLED_LINE_SCKT        PB1 #define                DOTLED_LINE_SCKH        PB5 #define                DOTLED_LINE_SDA                PB3 #define                DOTLED_ROW_PORT                PORTC #define                DOTLED_ROW_DDR                DDRC #define                DOTLED_ROW_PIN                PINC #define                DOTLED_ROW_A0                PC0 #define                DOTLED_ROW_A1                PC1 #define                DOTLED_ROW_A2                PC2 #define                DOTLED_ROW_A3                PC3 #define                DOTLED_ROW_E                PC4 uint8 font[] = { /*--  调入了一幅图像:这是您新建的图像  --*/ /*--  宽度x高度=16x16  --*/ 0x00,0x00,0x00,0x00,0x08,0x38,0x18,0x44,0x08,0x44,0x08,0x04,0x08,0x08,0x08,0x10, 0x08,0x20,0x08,0x40,0x08,0x40,0x08,0x40,0x3E,0x7C,0x00,0x00,0x00,0x00,0x00,0x00 }; static void TransmitByte(uint8 byte); static void SelectRow(uint8 row); static void FlipLatchLine(void); static void TransmitByte(uint8 byte) {         uint8 i;                  for(i = 0 ; i < 8 ; i ++)         {                 if(byte & (1 << i))                 {                         DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA);                 }                 else                 {                         DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SDA);                 }                 //__delay_cycles(100);                 DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKH);                 //__delay_cycles(100);                 DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKH);                 //__delay_cycles(100);         } } static void SelectRow(uint8 row) {           //row -= 1;         row |= DOTLED_ROW_PIN & 0xe0;         DOTLED_ROW_PORT = row; } static void FlipLatchLine(void) {         DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKT);         DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKT); } void InitDotLedPort(void) {         DOTLED_LINE_PORT &= ~(_BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH));         DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA);         DOTLED_LINE_DDR |= _BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH) | _BV(DOTLED_LINE_SDA);                  DOTLED_ROW_PORT |= 0x1f;         DOTLED_ROW_PORT &= 0xf0;         DOTLED_ROW_DDR |= 0x1f; } void EnableRow(boolean IsEnable) {         if(IsEnable)         {                 DOTLED_ROW_PORT &= ~_BV(DOTLED_ROW_E);         }         else         {                 DOTLED_ROW_PORT |= _BV(DOTLED_ROW_E);         } } void PrintDotLed(uint8 * buffer) {         uint8 i , tmp;                  for(i = 0 ; i < 16 ; i ++)         {                 tmp = *buffer ++;                 TransmitByte(~tmp);                 tmp = *buffer ++;                 TransmitByte(~tmp);                 SelectRow(i);                 FlipLatchLine();         } } void main(void) {         InitDotLedPort();                  EnableRow(TRUE);                  while(1)         {                 PrintDotLed(font);                 __delay_cycles(5000);         }          } //---------------------------------------------------- config.h文件 #ifndef        _CONFIG_H #define        _CONFIG_H //#define                GCCAVR #define                CPU_CYCLES        7372800L #ifndef                GCCAVR #define                _BV(bit)        (1 << (bit)) #endif #define                MSB                0x80 #define                LSB                0x01 #define                FALSE                0 #define                TRUE                1 typedef                unsigned char        uint8; typedef                unsigned int        uint16; typedef                unsigned long        uint32; typedef                unsigned char        boolean; #include <ioavr.h> #include <inavr.h> #include "dotled.h" #endif //-----

    标签: 16 点阵显示 汉字 显示程序

    上传时间: 2013-11-17

    上传用户:mnacyf

  • Keil Cx51 V7.0单片机高级语言编程与uVisio

    Keil Cx51 V7.0单片机高级语言编程与uVision2应用实践详细介绍了KeilCx51V7.机C语言编译器和全新Windows集成开发环境μVision2的强大功能和具体使用方法。全面介绍了最新版本Cx51编译器新增加的控制命令,给出了全部Cx51运行库函数及其应用范例,对KeilCx51软件包中各种应用工具,如BL51/Lx51连接定位器、A51/Ax51宏汇编器、LIB51库管理程序以及OH51符号转换程序等都作了详细介绍,还介绍了单片机实时多任务操作系统RTX51及其子集RTX51TINY的具体功能与应用方法。μVision2已经将调试器功能集成于其中,用户可以在单一环境下完成从源程序编写、编译、连接定位一直到目标文件的仿真调试等全部工作,书中详细介绍了μVision2各种功能和应用,包括软件模拟调试和硬件目标板实时在线仿真。第1章  851单片机与KeilCx51基础  1.1  851单片机的存储器组织结构  1.2  KeilCx51开发工具  1.3  Cx51简单编程与调试第2章  Cx51程序设计基础  2.1  标识符与关键字  2.2  Cx51程序设计的基本语法  2.2.1  数据类型  2.2.2  常量  2.2.3  变量及其存储模式  2.2.4  用typedef重新定义数据类型  2.2.5  运算符与表达式  2.3  Cx51程序的基本语句  2.3.1  表达式语句  2.3.2  复合语句  2.3.3  条件语句  2.3.4  开关语句  2.3.5  循环语句  2.3.6  返回语句第3章  函数  3.1  函数的定义;  3.2  函数的调用  3.2.1  函数的调用形式  3.2.2  对被调用函数的说明  3.2.3  函数的参数和函数的返回值  3.2.4  实际参数的传递方式  3.3  函数的递归调用与再入函数

    标签: uVisio Keil 7.0 Cx

    上传时间: 2014-01-15

    上传用户:edisonfather

  • 分区式存储管理源代码 一、可变分区存储管理的基本策略 1)不预先划分几个固定分区

    分区式存储管理源代码 一、可变分区存储管理的基本策略 1)不预先划分几个固定分区,分区的建立是在作业的处理过程中进行的,各分区的大小由作业的空间需求量决定。 2)采用指针方式将各个空闲分区链接而成的链表,用以记录主存分配现状。 3)分配与回收算法按空闲分区链接方式的不同分类,有最佳、最坏、首次和下次适应四种算法。 二、程序模拟的设计 1、基本思想 采用事件驱动模型。事件有: 1)申请主存事件,表示一个作业创建时提出的主存资源要求; 2)释放主存事件,表示一个作业结束时其占用主存被回收。 2、数据结构设计 ...... typedef struct Event_DataType{事件数据类型的定义intEventType事件的类型 申请ASK或释放RELEASE int OccurTime 事件发生的时间 char JobName 申请主存或被回收主存的作业名 int JobId 进入系统的作业在作业表中相应表项的编号 int SizeOfMemoryForAsk 作业申请占用主存的尺寸 int OccupyTimeOfMemoryForAsk 作业申请占用主存的时间长度 int WaitFlag 该事件是否等待过TRUE或FALSE

    标签: 分区 存储管理 源代码

    上传时间: 2014-12-20

    上传用户:cc1015285075

  • 一、 实验内容 S语言的编译程序的词法分析部分实现 从左到右扫描每行S语言源程序的符号

    一、 实验内容 S语言的编译程序的词法分析部分实现 从左到右扫描每行S语言源程序的符号,拼成单词,换成内部表示(token) 二、 实验要求 要求实现编译器的以下功能:  组织源程序的输入  按规则拼写单词,并转换成二元形式  删除空格及无用符号(如回车符,字符常数的引号符等)  发现并定位错误  建立单词表、符号表、常数表等文件 三、 实现方法 数据结构 1、 输入 S语言源程序,为文本文件 2、 输出 词法分析程序的运行结果是:产生一个单词序列文件(token文件)和一个常数表、一个符号表文件,并输出错误信息。 (1) token文件结构 token文件用于存放从S语言源程序中扫描出来的一个个单词符号的机内表示,其文件结构如下: typedef struct token { nt label char name[30] int code int addr }token 说明:  label:单词序号;  name[30]:单词本身;  code:单词的编辑;  addr:地址,单词本身保留字时值为-1,为标识符成常数时为大于0常数,即该标识符成常数在符号表中的入口地址。

    标签: 语言 实验 编译

    上传时间: 2015-04-29

    上传用户:refent

  • 最小二乘法曲线拟合 作者:佚名 文章来源:不详 点击数:164 更新时间:2006-1-4 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

    最小二乘法曲线拟合 作者:佚名 文章来源:不详 点击数:164 更新时间:2006-1-4 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 //最小二乘法曲线拟合 typedef CArray<double,double>CDoubleArray BOOL CalculateCurveParameter(CDoubleArray *X,CDoubleArray *Y,long M,long N,CDoubleArray *A) { //X,Y -- X,Y两轴的坐标 //M -- 结果变量组数 //N -- 采样数目 //A -- 结果参数   文章录入:admin 责任编辑:admin  

    标签: 2006 164 最小二乘法 曲线拟合

    上传时间: 2014-01-23

    上传用户:liansi

  • 动态链接库程序的编写。静态库与动态库的区别

    动态链接库程序的编写。静态库与动态库的区别,以及调用程序在链接静态库和动态库时的区别。如何利用工具查看动态链接库输出的函数,Depends工具的使用,C++编译器名字改编技术对动态链接库输出函数的影响,extern "C"的用法,利用模块定义文件来解决C++名字改编的问题。用typedef定义指向函数的指针类型,如何获得动态连接库里的函数的指针。

    标签: 动态链接库 动态 程序 编写

    上传时间: 2014-01-19

    上传用户:llandlu

  • 实习题 [问题描述] 1. 设顺序表中的数据元素递增有序

    实习题 [问题描述] 1. 设顺序表中的数据元素递增有序,将插入到顺序表的适当位置上,是该表仍然有序。 [输入] 初始顺序表,插入字符。 [输出] 插入x后线性表的结果 [存储结构] 采用顺序存储结构 [算法的基本思想] 建立一个递增顺序表,插入一个数值并移动元素,使其仍然有序。 程序如下: #include "iostream.h" #include <malloc.h> #define LIST_INTI_SIZE 100//初始空间大小 typedef struct SqList

    标签: 实习 元素 顺序表 数据

    上传时间: 2014-01-13

    上传用户:fhzm5658

  • [输入] 图的顶点个数N

    [输入] 图的顶点个数N,图中顶点之间的关系及起点A和终点B [输出] 若A到B无路径,则输出“There is no path” 否则输出A到B路径上个顶点 [存储结构] 图采用邻接矩阵的方式存储。 [算法的基本思想] 采用广度优先搜索的方法,从顶点A开始,依次访问与A邻接的顶点VA1,VA2,...,VAK, 访问遍之后,若没有访问B,则继续访问与VA1邻接的顶点VA11,VA12,...,VA1M,再访问与VA2邻接顶点...,如此下去,直至找到B,最先到达B点的路径,一定是边数最少的路径。实现时采用队列记录被访问过的顶点。每次访问与队头顶点相邻接的顶点,然后将队头顶点从队列中删去。若队空,则说明到不存在通路。在访问顶点过程中,每次把当前顶点的序号作为与其邻接的未访问的顶点的前驱顶点记录下来,以便输出时回溯。 #include<stdio.h> int number //队列类型 typedef struct{ int q[20]

    标签: 输入

    上传时间: 2015-11-16

    上传用户:ma1301115706