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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
下面两个子程序中有什么区别呢?
) p+ w3 d5 k8 m3 ?  G" h, M0 Gvoid Display(unsigned char FirstBit,unsigned char Num)4 ]% G5 l4 S0 z; `6 l( p+ I4 ^
{
* s- f2 o) T- e0 X. j- n      unsigned char i;9 m9 [$ ^5 [0 k
          ( ], K& s) u6 R0 \& @- c6 a! F
          for(i=0;i<Num;i++)# d" A3 W" p* f& I" ], `( q+ K
           { ' Q' r' o( H2 `2 K7 m$ z6 s$ E
           DataPort=0;   //清空数据,防止有交替重影) v) l; ^2 j8 k- n
           LATCH1=1;     //段锁存
9 h0 B! p. M* J( \0 T* s3 S+ f            LATCH1=0;
% N& z, L% [0 t5 d9 ^7 g' v7 n
6 [. n. j, P  ?8 p/ o1 z9 U& j           DataPort=dofly_WeiMa[i+FirstBit]; //取位码
, k. J  I0 o, B/ o' m          LATCH2=1;     //位锁存# z; |2 c6 X1 f; {$ _
          LATCH2=0;( M- W3 i6 P. i4 w; a: \
( h# x3 y& T) o& [) t3 i
           DataPort=TempData[i]; //取显示数据,段码6 y  T& b- k4 r" [
          LATCH1=1;     //段锁存2 D: K/ T8 W$ g8 g& b. o: k1 N& b  S
           LATCH1=0;
, T' A9 u" r4 x# G5 B8 c* }      
: t9 r- V- k- W, p' {" U& R           Delay(200); // 扫描间隙延时,时间太长会闪烁,
7 E) ^8 }' r, [                   //太短会造成重影  _  e, {  g! s5 \$ T: [

5 ~8 b' T, J4 v7 D9 `       }
1 D: l, I' p$ c
, L, z+ W, W* @  v7 I}/ e, F# D7 u4 p6 S* s3 J7 @
void Display(unsigned char FirstBit,unsigned char Num)
) \( A, a3 q$ t! p1 J{
9 U: m% {* z, c/ _      static unsigned char i;
- C5 A5 ]4 F/ b# p) q7 z           # I  F7 V0 g9 y) J
                   DataPort=0;   //清空数据,防止有交替重影
# }' A# ^; _4 f( k0 R! r               dula=1;     //段锁存; O: I# V. i8 ?6 h9 g. W! o0 J! T
               dula=0;8 V  G& C! x6 {" N4 L; e9 J; ]/ ^
* C; ?2 S! Y) s  \
               DataPort=dofly_WeiMa[i+FirstBit]; //取位码 . b* @- X7 |$ L8 ~8 s
               wela=1;     //位锁存% C2 ~' u& V; Q( E
               wela=0;
+ F3 ~4 _, Z' c3 r( f" H/ q& O
+ T. R! ~* J% N7 F" `# {8 K& c               DataPort=dofly_DuanMa[disp[i]]; //取显示数据,段码7 p# h  q& M; V, n) I6 n' \
               dula=1;     //段锁存
/ P: z- B( q5 H              dula=0;
7 w4 E6 G, f! O3 s2 ^  D               i++;
" X. c8 a. K/ q( J/ c                if(i==Num)8 r+ U- n" T* r1 y# q. ?5 a
                        i=0;! U2 B8 U) ~6 C5 d
}

该用户从未签到

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

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

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

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