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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
下面两个子程序中有什么区别呢?
8 Q/ ]. X  u9 {, }1 C) Yvoid Display(unsigned char FirstBit,unsigned char Num)
0 q" Q$ H& K1 R# d{% P& O; V, \' J1 k1 Q" ?$ @" y
      unsigned char i;% ~9 U2 ^: X+ @* J2 ^
          2 A; l9 o& D- p0 R, n4 H
          for(i=0;i<Num;i++)+ O+ z/ j. C( g0 v. @) y. `  a
           {
+ H1 Y6 h' o0 ^. l: w) a- ^           DataPort=0;   //清空数据,防止有交替重影" r4 [& B7 G+ v) {" e. |  Q( W9 x
           LATCH1=1;     //段锁存1 H1 o# W- [1 e
            LATCH1=0;
( s- F1 v2 Y, i
2 ^5 P$ o4 t, i+ z0 P8 ?           DataPort=dofly_WeiMa[i+FirstBit]; //取位码
; x7 D% b6 J, D6 R* Z  W          LATCH2=1;     //位锁存
: l& k" F% M& Z2 Z9 a& t# c          LATCH2=0;: z1 P3 A. S. K$ {
6 Z, e$ i7 M3 s$ D+ w; k3 J% x
           DataPort=TempData[i]; //取显示数据,段码& @. W; r6 p- x& v
          LATCH1=1;     //段锁存) t5 k0 c6 g) z! K  \
           LATCH1=0;
% N( D* B, q! R1 N7 a5 \      
& j" s$ T: W5 q5 a* a           Delay(200); // 扫描间隙延时,时间太长会闪烁,
8 C% y, O9 Y3 l' f8 e                   //太短会造成重影
% C6 V' X% g+ R" z
5 t7 y1 s& g) K       }
  U: g& V. |. n- ^/ E1 i6 U
' |. w1 C3 D! {}- ]/ t. Z: J2 Y; y) i/ D6 {
void Display(unsigned char FirstBit,unsigned char Num)  J, X" X8 k2 m
{$ `+ |1 o7 o5 ]5 I7 {3 J
      static unsigned char i;& A& B& z( ~7 F  r" ~% x4 y
           9 ?0 z! ~  B8 j& r
                   DataPort=0;   //清空数据,防止有交替重影7 |. ?+ t( ~' A, F- k" ?
               dula=1;     //段锁存
2 X) o5 G- c7 G1 k               dula=0;: r9 q$ a$ w. o- k

, Q; d, W# a- z. G               DataPort=dofly_WeiMa[i+FirstBit]; //取位码 3 H/ }+ _. }- \0 Z# R, @+ K2 n5 a
               wela=1;     //位锁存
% G# S! }3 ?  E/ ?& k               wela=0;, T% V7 ^# i7 h
- @, i" ?& A! @  j: ^  e( j
               DataPort=dofly_DuanMa[disp[i]]; //取显示数据,段码
) B  b' l, T3 g               dula=1;     //段锁存. T5 g4 K2 I0 M3 w# Q
              dula=0;: E' j* V6 m" P% a
               i++;
/ I5 \9 H. f5 g  k2 F- B  J                if(i==Num)
2 A6 C) U/ X) M: I$ N1 a                        i=0;  d" a# L( g  v0 v0 g& R: p$ S( T7 P
}

该用户从未签到

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

该用户从未签到

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

该用户从未签到

2#
发表于 2013-5-15 11:22 | 只看该作者
没人气啊,自己百度下static就有答案了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 18:49 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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