c语言定义结构体指针

发布者:心怀梦想最新更新时间:2015-09-18 来源: eefocus关键字:c语言  结构体指针 手机看文章 扫描二维码
随时随地手机看文章
int main()

{
typedef struct 
{
  u8 KeyCurrentIndex;//当前状态索引号
  u8 KeyEnterState;//按下【enter】键时转向的索引号
  u8 KeyCancelState;//按下【cancel】键时转向的索引号
  u8 KeyUpState;//按下【up】键时转向的索引号
  u8 KeyDownState;//按下【down】键时转向的索引号
  void (*CurrentOperate)(); //当前状态下执行的功能操作
}KbdTabStruct;

const KbdTabStruct  KBD[]=
{
 {0,1,2,3,4,(*main)},
 {6,7,8,9,10,11},
 {0,1,2,3,4,5},
 {0,1,2,3,4,5},
};
 const KbdTabStruct  KBD1=
{
 
 20,27,38,39,40,51,

};
   KbdTabStruct *ptr=&KBD[1];//定义指向结构体的指针变量 ptr  并赋初值KBD
    KbdTabStruct *pr=&KBD1;//定义指向结构体的指针变量 pr 赋初值KBD1

 printf("%d ",KBD[0].KeyEnterState);//应是1
 printf("%d ",KBD[1].KeyCurrentIndex);//6
 printf("%d ",KBD[1].KeyDownState);//10
    printf("%d ",ptr->KeyDownState);//10
    printf("%d ",(*ptr).KeyDownState);//10
   printf("%d ",(*pr).KeyDownState);//40
}

1.jpg

关键字:c语言  结构体指针 引用地址:c语言定义结构体指针

上一篇:C语言程序内存分配
下一篇:基于P87C591的机车电子柜实时检测系统设计

推荐阅读最新更新时间:2024-03-16 14:32

51单片机洗衣机控制板及C语言程序
51单片机洗衣机控制板及C语言程序,该控制板单片机采用AT89C51单片机,所设计全自动洗衣机功能有:标准洗衣、经济洗衣、单独洗衣以及排水四种洗衣等四种方式,有强洗、弱洗及运行/暂停、显示及报警功能,程序利用利用Protues仿真软件观察洗衣机的运行状态和过程。整个设计能达到预想的设计效果。 #include 'reg51.h' #define uchar unsigned char #define uint unsigned int #define Enable(); EA=1; #define Disable(); EA=0
[单片机]
51单片机洗衣机控制板及<font color='red'>C语言</font>程序
C语言一百例第十三例
代码: /* C语言第十三例 打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个 水仙花数 ,因为153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 */ #include stdio.h void main(void) { int a,b,c,d; for(a=100;a 1000;a++) { b=a/100; //假如a=123,得百位为1 c=a/10%10; //假如a=123,得十位为2 d=a%10; //假如a=123,得个位为3
[单片机]
<font color='red'>C语言</font>一百例第十三例
C语言在C51单片机中的编程和常用c语言有什么异同
通用c语言和C51单片机c语言基本没做什么大的改变?只是要注意下面几点。 1.数据类型的差别(着不同说在不同芯片上所支持的类型是有些差别,用的时候注意看一下) 2.c51对c语言的数据类型做了扩充。 如下: sfr 特殊功能寄存器数据声明,声明一个8位的寄存器。 sfr16 16特殊功能寄存器的数据声明 sbit 特殊功能位声明 bit 位变量声明
[单片机]
单片机C语言延时分析
标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。 在keil C51中,直接调用库函数: #include // 声明了void _nop_(void); _nop_(); // 产生一条NOP指令 作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。 在选择C51中循环语句时,要注意以下几个问题 第一、定义的C51中循环变量,尽量采用无
[单片机]
单片机C语言实现数码管控制
数码管作为人机接口的重要显示部件,广泛应用于各行各业。本文将围绕数码管的原理和使用展开讨论,实验内容也是由浅入深,结合C语言特性,着意于在实验中掌握数码管和C语言知识。文章采用与 单片机C语言实现独立按键检测与矩阵键盘操作 同样的开发板。以下先给出数码管的电路原理图。 上图中的4个数码管为共阳极数码管。数码管实际是由8个发光二极管组成的,而共阳极是指将这8个二极管的正极连接到一个公共端。所以当这8个二极管的任何一个负极通低电平的时候,相应的二极管就会被点亮,相反,通高电平则灭。详细请参照以下原理图。 图中任取一个数码管,有a, b, c, d, e, f, g, p分别代表组成该数码管的发光二极管。当要该数码管显示0到9之
[单片机]
51单片机PID的算法实现程序C语言
/* 用整型变量来实现PID算法,由于是用整型数来做的,所以也不是很精确,但是对于很多的使用场合,这个精度也够了, 关于系数和采样电压全部是放大10倍处理的.所以精度不是很高. 但是也不是那么低,大部分的场合都够了. 实在觉得精度不够, 可以再放大10倍或者100倍处理,但是要注意不超出整个数据类型的范围就可以了.本程序包括PID计算和输出两部分. 当偏差 10度全速加热,偏差在10度以内为PID计算输出. 具体的参考代码参见下面: */ //================================================================ // pid.H // Operation abou
[单片机]
单片机 模糊控制 算法 c语言
1 #include reg52.h 2 //------------------------------------------------------------------------------------ 3 // 定义差距输入常量 4 #define GAP_ZERO 0x00 5 #define GAP_VSMALL 0x01 6 #define GAP_SMALL 0x02 7 #define GAP_MEDIUM 0x03 8 #define GAP_BIG 0x04 9 // 定义控制输出常量 10 #define TURN_ZERO 0x80 11 #define TU
[单片机]
小容量单片机系统的C语言程序结构
  2002年初,笔者着手写一个IC卡预付费电表的工作程序,该电表使用Philips公司的8位51扩展型单片机87LPC764,要求实现很多功能,包括熄显示、负荷计算与控制、指示闪烁以及电表各种参数的查询等,总之,要使用时间的单元很多。笔者当时使用ASM51完成了这个程序的编写,完成后的程序量是2KB多一点。后来,由于种种原因,这个程序并没有真正使用,只是作了一些改动之后用在一个老化设备上进行计时与负荷计算。约一年后,笔者又重新改写了这些代码。 1 系统的改进   可以说,这个用ASM51实现的代码是没有什么组织性可言的,要什么功能就加入什么功能,弄得程序的结构非常松散,其实这也是导致笔者最终决定重新改写这些代码的原因。  
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved