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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
下面两个子程序中有什么区别呢?
5 @" C. W8 V& g% Y8 s  V. i) Mvoid Display(unsigned char FirstBit,unsigned char Num)  e& p) T3 l/ h; \& o% u$ k: z
{
0 M/ B- ~  S9 n* m- Y      unsigned char i;
8 _- `, p6 L0 U5 n- j( Y; S          
! h( F; z% y! J# E) t" I! \! A          for(i=0;i<Num;i++); F. m4 Z! F6 p
           {
6 t/ r8 V/ J) Y7 s* ?* [           DataPort=0;   //清空数据,防止有交替重影: {* C  E( a3 E. d' `1 j
           LATCH1=1;     //段锁存
+ ^( @! h3 {1 d. A) J            LATCH1=0;
! H  N9 b8 _# Q9 o! v! [( {3 P7 ^  k0 P+ R% x2 O& ~1 j8 X
           DataPort=dofly_WeiMa[i+FirstBit]; //取位码 9 o& S+ C- H/ ]
          LATCH2=1;     //位锁存. X6 B( S5 ~. u$ F
          LATCH2=0;( n0 y/ T# [1 w. z9 K

) ^) {: \" ?2 V: Z1 \           DataPort=TempData[i]; //取显示数据,段码/ B3 V! d, r& m
          LATCH1=1;     //段锁存6 g; Q. u) C9 w
           LATCH1=0;9 k' f, t, v( I. u
       ; y. W5 m5 s" P+ x9 f
           Delay(200); // 扫描间隙延时,时间太长会闪烁,3 f8 F5 V" H; k
                   //太短会造成重影" }8 J3 W: K" p+ P) e- ?8 K' s
. t" N9 f6 ?& s0 c
       }1 A" T& S- N, p5 ^: N

: X8 w$ X/ {' O4 I6 H. Y/ D" I}6 o! x) E7 j* ^4 K: N
void Display(unsigned char FirstBit,unsigned char Num), b; `4 B& L2 O( q: t
{& v1 n  _; j& P9 Z) r; b% n) A
      static unsigned char i;
+ b! r1 _/ o, w( {0 f' H          
9 X7 M" r1 L! W" t& `                   DataPort=0;   //清空数据,防止有交替重影8 ?0 k5 k# J6 p# y
               dula=1;     //段锁存" m/ p9 k$ _/ b1 u8 V
               dula=0;
" B, W0 W1 a1 W1 A
" e- y; k+ O1 e& z               DataPort=dofly_WeiMa[i+FirstBit]; //取位码 , [% Z( s/ Z# {
               wela=1;     //位锁存( s7 B( ]3 Q' i* M7 n$ W2 q! n* c
               wela=0;2 [! Q% D4 ^8 C' a+ u+ r

8 o* d% L8 ]6 ]5 }               DataPort=dofly_DuanMa[disp[i]]; //取显示数据,段码
6 p% A" E! s3 J7 F5 E               dula=1;     //段锁存
$ C; Y) ?7 u0 q% }, f; ^3 K              dula=0;: |2 _" [/ c7 T% ^' P, O8 v" p
               i++;
! o( U& U& w1 L, J6 e% S4 }                if(i==Num)
* ?$ Z1 X/ |1 i+ \, `: g' o# c                        i=0;6 ^3 D+ H8 b$ o- ]) @5 {
}

该用户从未签到

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-9-4 11:43 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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