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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
下面两个子程序中有什么区别呢?
( ?/ i& Z9 j8 C1 j9 O- {void Display(unsigned char FirstBit,unsigned char Num)
0 e/ L- N! {# y8 S{  K1 R' q. o% N. a; U) z; @1 E* Q" F
      unsigned char i;
  K. s1 X' E' \          3 c4 C) I% _& A4 J2 p" B% w
          for(i=0;i<Num;i++)7 W" }* r! S: z% a( o. H" k
           { . d" ^6 C; i4 f+ z- g2 o
           DataPort=0;   //清空数据,防止有交替重影
) W+ s! F( e9 f. _* z           LATCH1=1;     //段锁存2 U) y! J: v2 t0 ^: t
            LATCH1=0;" l- s( l$ H. W# \$ T: m

. S2 X% d2 e. u1 h, F           DataPort=dofly_WeiMa[i+FirstBit]; //取位码
. E/ |' x' c2 j* q! O( N          LATCH2=1;     //位锁存3 y5 X/ c  ~; \5 e
          LATCH2=0;
9 E/ [# j  U1 S8 O( W( D. W/ p$ C7 j% g5 t% \, n$ ?( O. `
           DataPort=TempData[i]; //取显示数据,段码
+ D9 ^) A) L/ R" i          LATCH1=1;     //段锁存
: ]7 F# i9 [- A# `           LATCH1=0;; |9 z& D* y  b7 B/ P
      
: B5 `" H  G# l7 d. U           Delay(200); // 扫描间隙延时,时间太长会闪烁,0 T- `0 r( B2 A  H3 c
                   //太短会造成重影" N6 @4 g* V# s0 t+ H

0 }+ e. e" p8 I* E& D, o       }
7 G: w+ }; q( n/ q  L/ T
7 E% N# @/ u2 p: f) U}
, E7 r, Z: t6 e( @8 gvoid Display(unsigned char FirstBit,unsigned char Num)
1 @2 f+ i4 D3 @+ }3 H" {{2 H4 ?9 k1 S3 E6 g
      static unsigned char i;
6 x$ B. K0 z" I/ K& F           2 d4 d) p( t$ K6 h
                   DataPort=0;   //清空数据,防止有交替重影2 r) e; u2 G  y3 K1 U* ]
               dula=1;     //段锁存
3 Q/ J2 P+ q- K               dula=0;
3 @, t$ D) z* n7 I2 [. M' O+ ?
               DataPort=dofly_WeiMa[i+FirstBit]; //取位码
. s7 v$ [$ s) U               wela=1;     //位锁存! c0 O* q3 s; C* Y7 \8 f' q" @. T7 i
               wela=0;
, Q, X: M: K" B* Y" d+ D8 t$ g  r5 N
               DataPort=dofly_DuanMa[disp[i]]; //取显示数据,段码0 X6 a  w5 v; p
               dula=1;     //段锁存8 S/ }% {4 h# H7 a
              dula=0;5 {9 t' u) t2 _: q+ R" {
               i++;
% Y& d4 R, {* O, @3 m                if(i==Num)) a/ f0 ]# x* c& \
                        i=0;
" c* F# D1 Y' m, R}

该用户从未签到

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-11-23 22:37 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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