找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

31

主题

113

帖子

-1万

积分

未知游客(0)

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

EDA365欢迎您!

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

x
下面两个子程序中有什么区别呢?: S- T. z. A4 K2 |" i
void Display(unsigned char FirstBit,unsigned char Num)4 s3 Q# j8 Z. ?: m8 l1 D
{' u$ D7 `; C% r+ I3 f( ^
      unsigned char i;
" v8 q( @9 w* Y. c. m: b  O          
1 z3 V4 f9 h$ g+ e1 {1 P2 P: A          for(i=0;i<Num;i++)
. v8 `) `! B2 ?" u) [; S" T           {
1 `3 D7 P2 K6 d' {5 t4 {           DataPort=0;   //清空数据,防止有交替重影
" m" O# h2 d8 a: E. q0 \           LATCH1=1;     //段锁存7 j" H2 s: L/ x, ^1 {
            LATCH1=0;% h  `3 O4 p1 _, C/ F& P
4 u/ {2 ~9 W6 C' p  V
           DataPort=dofly_WeiMa[i+FirstBit]; //取位码
4 p& V2 {6 g8 y9 s( B          LATCH2=1;     //位锁存. i8 W  |$ ]2 B& z, h+ L/ M
          LATCH2=0;' F3 X& G9 b7 L/ \
* E- O& V( {5 `3 b# ?9 B
           DataPort=TempData[i]; //取显示数据,段码
. Z- W- o" d" C  d- r          LATCH1=1;     //段锁存9 {5 l$ _3 a9 x! f
           LATCH1=0;5 T! z# i. N- R5 k- O0 {! l4 z: e
       + r$ O: e$ e) k, Z  k  O- T
           Delay(200); // 扫描间隙延时,时间太长会闪烁,
8 ^) n0 u! m/ I; X) |                   //太短会造成重影6 k" z! X7 `/ n# c
) }' N) K, r8 r7 V% T/ x
       }
; n7 @5 a# \1 a3 r7 k2 j, I# Q
+ E+ u, m" ?0 G: l, H+ s, ^}- d/ U& A) w7 e) l6 T7 H
void Display(unsigned char FirstBit,unsigned char Num)
1 s7 I- K( O* d+ ~+ G$ A% p% a{% h4 L+ C, o1 b; g& m" T6 L# Y
      static unsigned char i;# `9 g/ H8 e+ b: H' ~
          
$ ]' \% K2 d$ x$ E& T                   DataPort=0;   //清空数据,防止有交替重影- e+ b8 R( D1 J* ~% p+ k! [# R2 z
               dula=1;     //段锁存
* G% n) ~0 f& P# B9 L4 U9 \7 I               dula=0;" ^0 U, |' p/ l5 B( b5 E  l

  }5 Y* W! U# t1 z               DataPort=dofly_WeiMa[i+FirstBit]; //取位码 4 {1 f, l# w6 N6 w0 f) B
               wela=1;     //位锁存; O9 d: s; P! V- s
               wela=0;
! P6 j  O0 Z( [$ C' A$ D3 \" `/ |! E( P0 ^/ d
               DataPort=dofly_DuanMa[disp[i]]; //取显示数据,段码  M# z' h9 N3 k; m7 w. M
               dula=1;     //段锁存' X  D+ `8 f+ o3 q4 y' E! T
              dula=0;
  T& ^( T$ P# x8 n6 `               i++;
& A2 ~% |2 J# B; G                if(i==Num)
: a1 q$ X  M! w: w" S+ g) N: o, u                        i=0;
3 s/ @" M# e6 e/ X- @5 B' ?( {1 p6 Z}
分享到:  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-11-8 21:21 , Processed in 0.068885 second(s), 31 queries , Gzip On.

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

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

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