单片机c语言keil编译程序老是提示 KEYS.H(11): error C129: missing ';' before 'key'

双击就跳到uint8key;的位置了是怎么回事?#ifndef_KEYS_H_#define_KEYS_H_/*key=0-9代表数字0-9key=11代表上key=12... 双击就跳到uint8 key; 的位置了
是怎么回事?

#ifndef _KEYS_H_
#define _KEYS_H_
/*key=0-9代表数字0-9
key=11 代表 上
key=12 代表 左
key=13 代表 右
key=14 代表 下
key=15 代表 删除/退出
key=16 代表 确定
*/
uint8 key; //双击就跳到这了!!!
void exint0(void) interrupt 0 using 1
{
P2=0x10;
if(P2&0x0f==0x01){key=11;}
if(P2&0x0f==0x02){key=12;}
if(P2&0x0f==0x04){key=13;}
if(P2&0x0f==0x08){key=14;}
P2=0x20;
if(P2&0x0f==0x01){key=7;}
if(P2&0x0f==0x02){key=4;}
if(P2&0x0f==0x04){key=1;}
if(P2&0x0f==0x08){key=15;}
P2=0x40;
if(P2&0x0f==0x01){key=8;}
if(P2&0x0f==0x02){key=5;}
if(P2&0x0f==0x04){key=2;}
if(P2&0x0f==0x08){key=0;}
P2=0x80;
if(P2&0x0f==0x01){key=9;}
if(P2&0x0f==0x02){key=6;}
if(P2&0x0f==0x04){key=3;}
if(P2&0x0f==0x08){key=16;}
}

#endif
展开
 我来答
lycdl
高粉答主

2014-07-03 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:4958万
展开全部
你这个程序也是做成了头文件了吧,在主程序中用#include定义包含这个头文件的位置是在typedef unsigned char uint8; 前面了吧,这样typedef的定义就无效了,交换一下顺序。
追问
http://pan.baidu.com/s/1o6HPLnO程序我上传到百度云了,帮忙看下
john_lee1969
2014-07-03 · TA获得超过1700个赞
知道小有建树答主
回答量:419
采纳率:100%
帮助的人:529万
展开全部
检查一下 uint8 定义了吗?
更多追问追答
追问
#include        //  包含51单片机寄存器定义的头文件
#include //包含_nop_()函数定义的头文件
typedef unsigned char uint8; //8位的
typedef unsigned int uint16; //16位的

要不要在定义uint8的前面加*?
加了有什么效果?
追答
不要加*,加了uint8就变成指针类型了。

如:
typedef unsigned char* uint8;
uint8 a; // 等效与 unsigned char* a;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式