找回密码
 注册
关于网站域名变更的通知
查看: 1226|回复: 3
打印 上一主题 下一主题

static的作用?麻烦高手帮帮看看啊

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-5-13 10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
下面两个子程序中有什么区别呢?( ]  R' l1 p1 I2 ]7 D+ y; M* Y
void Display(unsigned char FirstBit,unsigned char Num), ^" ^* ?: ^- ^1 M
{
- B! ?2 T/ N! z3 b" Q      unsigned char i;
1 K9 x) g& _  f& W7 N  u          
" ~) r' z0 a8 \& c; C- ^  ^          for(i=0;i<Num;i++)& t' {$ }  Q/ I8 E% s6 W
           { 4 a% L8 o' C6 y: P# X1 Q2 i3 ~
           DataPort=0;   //清空数据,防止有交替重影
" ~/ I6 _9 j( C. l( d           LATCH1=1;     //段锁存
1 b- f; F  U% i5 w8 w5 f7 @            LATCH1=0;
% D$ J* v  J# d6 B3 }! P! B: m2 g( Y" U6 K
           DataPort=dofly_WeiMa[i+FirstBit]; //取位码
; D) ?+ x5 A! _8 ?  Z2 v          LATCH2=1;     //位锁存) H( u# c) W! s& |* e" Q! Q1 X
          LATCH2=0;& }' j- U3 f7 {2 W+ j& z/ q
- P8 m' W( @7 }3 x- ^; s5 ?$ v/ D( P) g
           DataPort=TempData[i]; //取显示数据,段码/ Q  z$ x4 O: b# f& Q" n& H
          LATCH1=1;     //段锁存
: i6 j, P: T$ O! ~% M0 X" ?1 ?0 M" G% |           LATCH1=0;
# Z7 R$ ^; p- ]  b) m8 y) Q" B      
3 m( B! D  y: b           Delay(200); // 扫描间隙延时,时间太长会闪烁,( I0 f" h7 P2 h: u! L* ?
                   //太短会造成重影/ u: i# \7 C6 \5 M, z

% H; v$ Z( U( \6 L6 O4 [       }& m6 [. U. p- g& \4 P

5 g7 W6 U6 P. X0 `7 f8 n$ V}
! K$ d- W# \" l8 nvoid Display(unsigned char FirstBit,unsigned char Num)
7 x6 a5 W; Q9 j1 w& }, Z* A" m{" J3 P$ A5 U. ?% ?
      static unsigned char i;! j& x7 s/ ~/ T/ S; S
          
- \3 D$ c% r" Z4 i4 c                   DataPort=0;   //清空数据,防止有交替重影
$ M: P( l0 _0 g" v/ V               dula=1;     //段锁存
7 A* G! i1 d, z/ _               dula=0;: S. C% ~. q  b6 C5 {

3 Y1 x; K0 x9 j- W# A$ v4 @9 v0 T! C6 k               DataPort=dofly_WeiMa[i+FirstBit]; //取位码
) Y% n! x( P4 m' }6 w) F0 L& m" q               wela=1;     //位锁存0 p, |+ C* Q( G. N1 }+ Z
               wela=0;) V7 u& _9 l7 M
4 @4 R# C0 ]4 Q
               DataPort=dofly_DuanMa[disp[i]]; //取显示数据,段码$ ]1 `  o# b: l$ ^% h
               dula=1;     //段锁存$ L. I& j5 N3 h. }, w
              dula=0;
: M9 M  _* n$ P- n% d0 f               i++;2 i0 r) m$ n: h8 i; n: H$ W+ a6 b+ T
                if(i==Num)  ], L6 p, n- x- Z# g; S: [& F
                        i=0;% }' f" Y1 m8 d/ R! I
}

该用户从未签到

2#
发表于 2013-5-15 11:22 | 只看该作者
没人气啊,自己百度下static就有答案了

该用户从未签到

3#
发表于 2013-7-10 16:25 | 只看该作者
就是一个静态变量,只是这个函数使用,你也可以定义个全局static 整个C文件都用 别的地方不能extern

该用户从未签到

4#
发表于 2013-11-15 01:53 | 只看该作者
差别在于static unsigned char i  的数据会保存,i 这个变量会被分配固定的内存地址,unsigned char i是不被分配固定的地址的,只有调到时才会分配地址,用后就被清空掉了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-19 17:51 , Processed in 0.062500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表