找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 768|回复: 3
打印 上一主题 下一主题

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

[复制链接]

31

主题

113

帖子

-1万

积分

未知游客(0)

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

EDA365欢迎您!

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

x
下面两个子程序中有什么区别呢?
8 e' B9 z# e" j! P# R+ b0 _# d$ }void Display(unsigned char FirstBit,unsigned char Num)
5 x; f" t( U! v) i{  ?, e  K+ m6 O3 F& s( ]
      unsigned char i;
# {( T0 J, m2 n          9 S7 W$ x. a, K' S' Q% Q+ o) _) a! b
          for(i=0;i<Num;i++): X6 F/ I- v# L/ o- i! C
           {
4 Y) Z" [: _6 T1 Z& L  [0 S+ F           DataPort=0;   //清空数据,防止有交替重影
9 v% L( P* v2 u! n           LATCH1=1;     //段锁存
. E. _- I% e  D0 j            LATCH1=0;: T* m+ I. V* ^6 R
% q9 m4 I% C) V" _7 a
           DataPort=dofly_WeiMa[i+FirstBit]; //取位码 & Z/ ^/ R9 l( \! p% @; F
          LATCH2=1;     //位锁存
+ X: d! h6 j+ K1 N# l          LATCH2=0;, B$ V5 r2 V7 {0 p. ?) J. t3 ]
  _* R* k+ {# B) [7 |3 ^
           DataPort=TempData[i]; //取显示数据,段码
+ O+ K8 r: x2 J3 o6 h          LATCH1=1;     //段锁存- `7 n5 r* W% g' K7 d& X+ X
           LATCH1=0;
5 E$ o( o# d* m! `       # a) q8 |) `2 Y# |) `- _2 S
           Delay(200); // 扫描间隙延时,时间太长会闪烁,
  g- P# P4 v8 [" l) i3 v                   //太短会造成重影# j0 e* k$ K3 m; O  o, C1 P6 c

8 ^5 K& P/ ^9 i2 S* k# i       }
6 z+ H- ?9 e4 `, _5 X6 ^9 }" _9 f% N# m) w2 W
}
9 `; h/ G. {1 H  w5 N6 Kvoid Display(unsigned char FirstBit,unsigned char Num)6 V7 f1 _4 i% h& \
{: r) G, L$ L" {$ S+ m
      static unsigned char i;5 z2 f# w! K* ^$ k
           8 [8 T/ j$ B2 o1 u" G
                   DataPort=0;   //清空数据,防止有交替重影7 q$ u- \( w. ?( s
               dula=1;     //段锁存7 @0 v4 b+ s/ a" J& u- c0 P
               dula=0;" A% B: `& b5 g( O1 V' b: J

! d/ `- N% K: J( }& ^+ z               DataPort=dofly_WeiMa[i+FirstBit]; //取位码
8 H' Z9 ~' b* g" g  U               wela=1;     //位锁存
( V- t  p# m5 R. X               wela=0;/ c/ m: \9 R/ m' q
" a% G  j2 F) h" q* e( f
               DataPort=dofly_DuanMa[disp[i]]; //取显示数据,段码
6 o6 T! Y' d9 Z               dula=1;     //段锁存) c% m1 C, x, F0 i
              dula=0;
" \4 w5 G+ r8 K1 C. B               i++;
" r( S! n7 O4 i- o+ q                if(i==Num)
- Q: J2 _9 \% e: E                        i=0;  b) b' w% x, x% h! \; f4 D6 V3 r
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

0

主题

3

帖子

168

积分

二级会员(20)

Rank: 2Rank: 2

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

33

主题

250

帖子

295

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

2

主题

97

帖子

684

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-5-26 08:19 , Processed in 0.058493 second(s), 31 queries , Gzip On.

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

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

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