andrew2558 发表于 2019-9-27 07:11:39

请问大神,sbit不能做为函数的参数传递吗?

我的代码是这样的。
typedef unsigned int u16;
typedef unsigned char u8;

sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;
sbit k7=P1^6;
sbit k8=P1^7;

sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;

void delay(u16 i)
{
        while(i--);
}

void keypros(sbit k,sbit led)
{
        if(k==0)
        {
                delay(1000);
                if(k==0)
                {
                        led=~led;
                }
                while(!k);
        }
}

void keypress()
{
        keypros(k1,led1);
        keypros(k2,led2);
        keypros(k3,led3);
        keypros(k4,led4);
        keypros(k5,led5);
        keypros(k6,led6);
        keypros(k7,led7);
        keypros(k8,led8);
}
提示k变量没有定义

神奇 发表于 2019-9-27 07:52:45

应该不能吧,sfr、sbit这种特殊的变量只能是全局。
页: [1]
查看完整版本: 请问大神,sbit不能做为函数的参数传递吗?