打印

一个关于静态变量的问题~

[复制链接]
1531|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
林岳|  楼主 | 2008-11-2 23:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
#define uchar unsigned char 
#define uint unsigned int
void leds_move();
void leds_error();
void leds_snake();
void delay(uint t)
{
uint i,j;
for(i=0;i<t;i++)
{
for(j=0;j<121;j++)
{;}
}
}
#ifndef true
#define true 1
#endif
#define task_1 1
#define task_2 2
void main()
{
uchar system_status=true;
uchar system_task=task_2;
while(1)
{
if(system_status==true)
{
if(system_task==task_1)
{
leds_move();
}
else if(system_task==task_2)
{
leds_snake();
}
}
else
{
leds_error();
}
}
}
void leds_move()
{
static uchar leds=0x55;
P0=leds;
delay(100);
leds=~leds;
}
void leds_error()
{
static uchar leds=0x00;
P0=leds;
delay(100);
leds=~leds;
}
void leds_snake()
{
static uchar leds=0xf0;
if(leds>0x80)
{
P0=leds;
delay(100);
leds=(leds<<1)+1;
}
else 
{
P0=leds;
delay(100);
leds=leds<<1;
}
}

为什么变量leds不声明为static变量的时候程序不能按照预定的跑呢~?
请大家帮忙解答一下哈~
先谢过了~~~~

相关帖子

沙发
zyok| | 2008-11-2 23:49 | 只看该作者

晕,这都不明白?C还没入门

使用特权

评论回复
板凳
林岳|  楼主 | 2008-11-3 17:55 | 只看该作者

~

C没学好啊~
帮忙讲下了~

使用特权

评论回复
地板
一极管| | 2008-11-3 23:57 | 只看该作者

不加那个,系统默认为extern全局变量!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

23

帖子

0

粉丝