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

[复制链接]
2361|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

粉丝
快速回复 在线客服 返回列表 返回顶部