找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

31

主题

113

帖子

-1万

积分

未知游客(0)

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

EDA365欢迎您!

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

x
下面两个子程序中有什么区别呢?9 G2 g1 C% n% H4 F1 `+ N
void Display(unsigned char FirstBit,unsigned char Num)$ y0 t( q, M+ N/ ^" |: }7 Z
{: S! P- d7 z! p% H7 c
      unsigned char i;
" _8 y2 b! D: f! K          
9 W5 F7 o! l: i% n. v' U2 r" g          for(i=0;i<Num;i++)$ G4 P# H0 {. Z8 c0 h. A; r  w3 r
           { 6 u7 Z# {! y$ ?! u
           DataPort=0;   //清空数据,防止有交替重影+ {. a6 B% g- X5 g' N+ b. V( j
           LATCH1=1;     //段锁存
' H, e' i1 `. a            LATCH1=0;
1 p) p* q; J$ V0 E  N7 n  U* {4 v/ j  j& h# V1 A) i- w1 F4 b
           DataPort=dofly_WeiMa[i+FirstBit]; //取位码 & m0 x9 m9 a% d4 D# @
          LATCH2=1;     //位锁存( F2 t3 |$ J. |( ~* o( D
          LATCH2=0;, q' w& Q4 w) g. `  T

2 D! R7 e, i3 h9 C           DataPort=TempData[i]; //取显示数据,段码% \# g  ]) q. M1 v( s$ e
          LATCH1=1;     //段锁存
  T# V5 D8 i. o1 p/ G           LATCH1=0;
0 Q+ c8 ~  D3 N& k( G# k$ o         b" I3 O1 d8 A2 o
           Delay(200); // 扫描间隙延时,时间太长会闪烁,
1 ^  F' N1 A& s# q, R                   //太短会造成重影
; O. y5 P6 D9 s8 R6 u
$ b3 M7 d" ?0 N       }
( u# v% M$ ?% _3 s
; V5 F8 T# E0 h. ~& K) C}& @! \2 ~( y/ I5 n
void Display(unsigned char FirstBit,unsigned char Num)0 P' U: L( X/ _6 q, v8 m, y8 D
{. x9 O- {3 K* T1 P; R- z
      static unsigned char i;
( H$ ^3 y" }7 y: l- |9 l           , K" l, c* I2 }  u$ Q2 y
                   DataPort=0;   //清空数据,防止有交替重影- z- `5 j) J8 ?4 @$ _' h
               dula=1;     //段锁存
9 @6 V. `# j  r' l$ O4 o               dula=0;
: m& R) @  T! B2 ~/ f! o7 z0 x, v# d- @8 w8 `4 @9 Z
               DataPort=dofly_WeiMa[i+FirstBit]; //取位码
  q: X7 T& ?2 E               wela=1;     //位锁存
# i: E: m& r$ Z$ d& ~               wela=0;, Q- ~1 e) F8 U
& V7 g. Q6 N' E: N9 P
               DataPort=dofly_DuanMa[disp[i]]; //取显示数据,段码
% @4 c. g6 Y& G. k, {               dula=1;     //段锁存
  H$ n+ K( }; Q) Y5 ~! z              dula=0;0 N0 ]( w( Z) F% x' W- s! o! Q
               i++;! b, u' ?3 Z* T8 I3 N3 R, z
                if(i==Num)$ b1 O3 D9 u2 p. f0 S# A
                        i=0;6 ^1 X1 F! i3 Y' G% Y: u
}
分享到:  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, 2024-9-20 01:10 , Processed in 0.056456 second(s), 32 queries , Gzip On.

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

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

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