51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > C51教程 > 详细内容
《51单片机C语言教程》第十四课 C51结构、联合和枚举
发布时间:2009/6/16  阅读次数:3210  字体大小: 【】 【】【

下面就用一个综合的例子说明三种类型的简单使用。

#include

#include

void main(void)

{

enum TF {

False, True} State; //定义一个枚举,使程序更易读

union File { //联合中包含一数组和结构,


unsigned char Str[11]; //整个联合共用 11 个字节内存

struct FN {

unsigned char Name[6],EName[5];} FileName;

} MyFile;

unsigned char Temp;

SCON = 0x50; //串行口方式 1,允许接收

TMOD = 0x20; //定时器 1 定时方式 2

TCON = 0x40; //设定时器 1 开始计数

TH1 = 0xE8; //11.0592MHz 1200 波特率

TL1 = 0xE8; TI = 1;

TR1 = 1; //启动定时器

State = True; //这里演示 State 只能赋为 False,True 两个值,其它无效

//State = 3;这样是错误的

printf ("Input File Name 5Byte: \n");

scanf("%s", MyFile.FileName.Name); //保存 5 字节字符串要 6 个字节

printf ("Input File ExtendName 4Byte: \n");

scanf("%s", MyFile.FileName.EName);

if (State == True)

{

printf ("File Name : ");

for (Temp=0; Temp<12; Temp++)

printf ("%c", MyFile.Str[Temp]); //这里列出所有的字节

printf ("\n Name :");

printf ("%s", MyFile.FileName.Name);

printf ("\n ExtendName :");

printf ("%s", MyFile.FileName.EName);

}

while(1);

}

图 17-1 所示是运行的结果,A 中所示是说明例程中联合中的数组和结构占用的是同一段地址的内存空间,而结构中的两数组是各占两段不一样内存空间。

  

上一篇:《51单片机C语言教程》第十五课 运算符优先级和结合性等一 下一篇:《51单片机C语言教程》第十三课 C51指针的使用
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
本栏最新发布
本栏热门信息

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号