c-为什么老显示key_value 未定义 ,data数组也有问题??

问题描述

为什么老显示key_value 未定义 ,data数组也有问题??

/***************************************************
本程序是要用单片机做一个计算器
*************************************************/

#include
#include
#define GPIO_key P2
#define GPIO_zu P0//位选
#define GPIO_led P1//段选

unsigned char zu[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char LED_data[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
unsigned char LED_num[9];
unsigned char flag;

void display_num();//用来显示每次按键之后的key_value
void dispay_r(unsigned int r);//用来显示结果
void delayms(unsigned int i);//延时函数
char keypress();//扫描矩阵键盘
int jisuan();

unsigned char data[17];//全局存储数组 存储键值
//MAIN.C(23): error C141: syntax error near '['
unsigned char p;//用于 计算函数 和 出栈显示 的下标
//uchar p_stack;//用于显示数字的下标

void main()
{
int i;
int res;
p=-1;

unsigned char key_value;
//MAIN.C(32): error C141: syntax error near 'unsigned'
for(i=0;i<10;i++)
{
    LED_num[i]=LED_data[i];
}
flag=0;//标记是否有键值
while(1)
{
    loop:
    key_value=keypress();//修改flag,输出键值
    //MAIN.C(32): error C202: 'key_value': undefined identifier
    if(flag==1)//当flag=1时,表示有键值输入
    {
        if (p<=17)//入队操作
        {
            p++;

            data[p]=key_value;
        }
        if (key_value>-1&&key_value<10)
        {
            display_num();// display each num;
        }
        else if (key_value=='=')
        {
            res=jisuan();
            dispay_r(res);
        }
        else goto loop;
        //判断key_value
    }
    flag=0;
}

}
int jisuan()
{
unsigned int num[2]={0,0};
unsigned char fuhao;
int i=0;
for (;p>-1;p--)
{
if (data[p]>-1&&data[p]<10)
//MAIN.C(71): error C141: syntax error near 'data'
{
num[i]=data[p]+num[i]*10;

    }
    else
    {
        i++;
        fuhao=data[p];
    }
}
switch(fuhao)
{
case '+':num[1]=num[0]+num[1];break;

case '-':num[1]=num[0]-num[1];break;
case '*':num[1]=num[0]*num[1];break;
case '/':num[1]=num[0]/num[1];break;
}
return num[1];

}

char keypress()
{ unsigned char temp,key;
GPIO_key=0xfe;
temp=temp&0xf0;
if (temp!=0xf0)
{
delayms(10);
temp=GPIO_key;
if (temp!=0xf0)
{
flag=1;
temp=GPIO_key;
switch(temp)
{
case 0xee:key=0;break;
case 0xde:key=1;break;
case 0xbe:key=2;break;
case 0x7e:key=3;break;

        }
        while(temp!=0xf0)
        {
            temp=GPIO_key;
            temp=temp&0xf0;
        }
    }
}
GPIO_key=0xfd;
temp=temp&0xf0;
if (temp!=0xf0)
{
    delayms(10);
    temp=GPIO_key;
    if (temp!=0xf0)
    {
        flag=1;
        temp=GPIO_key;
        switch(temp)
        {
        case 0xed:key=4;break;
        case 0xdd:key=5;break;
        case 0xbd:key=6;break;
        case 0x7d:key=7;break;

        }
        while(temp!=0xf0)
        {
            temp=GPIO_key;
            temp=temp&0xf0;
        }
    }
}
GPIO_key=0xfb;
temp=temp&0xf0;
if (temp!=0xf0)
{
    delayms(10);
    temp=GPIO_key;
    if (temp!=0xf0)
    {
        flag=1;
        temp=GPIO_key;
        switch(temp)
        {
        case 0xeb:key=8;break;
        case 0xdb:key=9;break;
        case 0xbb:key='+';break;
        case 0x7b:key='-';break;

        }
        while(temp!=0xf0)
        {
            temp=GPIO_key;
            temp=temp&0xf0;
        }
    }
}
GPIO_key=0xf7;
temp=temp&0xf0;
if (temp!=0xf0)
{
    delayms(10);
    temp=GPIO_key;
    if (temp!=0xf0)
    {
        flag=1;
        temp=GPIO_key;
        switch(temp)
        {
        case 0xe7:key='*';break;
        case 0xd7:key='/';break;
        case 0xb7:key='=';break;
        case 0x77:key='.';break;

        }
        while(temp!=0xf0)
        {
            temp=GPIO_key;
            temp=temp&0xf0;
        }
    }
}
return key;

}
void display_num()
{
int zhi=p;
int j=0;
while(j>-1)
{
if (data[zhi]>-1&&data[zhi]
{
GPIO_zu=zu[j];
GPIO_led=LED_num[data[zhi]];
zhi--;
j++;
}
}
}
void dispay_r(unsigned int r)
{
unsigned char temp_r[8];
int i;
for(i=0;i
{
temp_r[i]=(int)r%(int)pow(10,i+1);
}
for (i=0;i
{
GPIO_zu=zu[i];
GPIO_led=LED_num[temp_r[i]];
}
}
void delayms(unsigned int i)
{
unsigned char c;
for(;i>0;i--)
{
for(c=110;c>0;c--);
}
}

解决方案

int i;
int res;
p=-1;
unsigned char key_value;

p = -1;已经是语句了 后面又有 key_value 的定义 编译器 貌似会忽略,把语句顺序调成
int i;
int res;
unsigned char key_value;
p = -1;
在编译 就没事了
data 是关键字 换掉

解决方案二:

看不出错来。不知道你有没有把data换个名字看?我没有用过你这个C,就算用过也未必记得。但是data是否可能时关键字?既然普通的肉眼演不出来的话,我第一怀疑的就是关键字问题,其次是全角/半角问题,甚至有时候把这行删了重新打一遍等等,都是可能解决问题的办法之一

时间: 2024-10-20 03:35:03

c-为什么老显示key_value 未定义 ,data数组也有问题??的相关文章

为什么我的ext在使用的时候老提示XXX 未定义

问题描述 包括Ext.example.msg();dialog.hide(); 其他的倒还正常 解决方案 examplesshared包下下的examples.js这个引了吗?

json-JSON的读取问题,data未定义

问题描述 JSON的读取问题,data未定义 $.ajax({ type: 'GET', url: "GetXY.ashx", dataType: 'json', success: function (data) { $.each(data, function (key, val) { //输出 var lnglat = new TLngLat(data[key].x,data[key].y); var marker = new TMarker(new TLngLat(data[key

access-Access中定义GroupConcat函数时, .显示用户定义类型未定义,怎么修改?

问题描述 Access中定义GroupConcat函数时, .显示用户定义类型未定义,怎么修改? 定义的函数如下:Public Function GroupConcat(sColumn As String sTable As String Optional sCriteria As String Optional sDelimiter As String = "")On Error GoTo ErrHandlerDim rs As New ADODB.RecordsetDim sSQL

php mssql-php+mssql2008连接一直不成功,显示未定义

问题描述 php+mssql2008连接一直不成功,显示未定义 php+mssql2008连接一直不成功,显示未定义该定义的我也定义了,该下载dll文件的我也下载了,可还是显示未定义 解决方案 信息不够具体啊,什么东东未定义? 解决方案二: php.ini查一下.注释去掉了吗?DB连接字符串设对了嘛?

_dopostback 在ie11下显示“未定义”

问题描述 按照网上讲的方法1打补丁下载后,在服务器上运行显示"被某些条件阻止",不能运行.2手动修改修改ie.browser,添加关于ie11的部分.netframework下的和netframework64下的都改过了,仍然显示错误修改单一站点下的ie.browser我是vs2010,修改后发布到服务器上,仍然显示错误还有什么方法吗 解决方案 解决方案二:ie.browser一共需要3个文件...你一个i文件是不行的你可以我我发给你就是了.解决方案三:太谢谢了3个文件用qq发吗私信给

qt-QT入门问题:调用designer中的部件显示未定义?

问题描述 QT入门问题:调用designer中的部件显示未定义? 解决方案 解决方案二: ui->lineEdit

vb6.0-VB6.0中定义一个rdoEnvironment时总是显示用户定义类型未定义

问题描述 VB6.0中定义一个rdoEnvironment时总是显示用户定义类型未定义 rt,VB6.0中定义一个rdoEnvironment时总是显示用户定义类型未定义

解决关于PHP“Undefined variable”变量未定义

PHP错误提示"Undefined variable":变量未定义,如果你在php.ini设置中屏蔽了Notice这个等级的提示那么他就不会显示任何提示了,但是为了程序的严谨性考虑,我们尽量避免任何警告.错误等明显的程序缺陷. 例一:class.Chinese.php中以下代码就会出错"Undefined variable":  代码如下 复制代码 for ( $i=0; $i<strlen($hexdata); $i+=2 )  $bindata.=chr(

innerhtml-无法设置属性“innerHTML”的值: 对象为 null 或未定义

问题描述 无法设置属性"innerHTML"的值: 对象为 null 或未定义 function getdbxx(posturl, paramstr, spanid, inputid) { $.ajax({ type : "post", url : posturl, dataType : 'json', data : 'portletConfigJson=${portletConfigJson}&'+paramstr, success : function(