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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
下面两个子程序中有什么区别呢?( [5 X5 O4 v0 i9 e' X" S
void Display(unsigned char FirstBit,unsigned char Num)' W% Z) f% R% B5 s& B0 D% {
{
  A/ A1 ~: c( ~7 u; V: L4 s      unsigned char i;
3 ^* X" n6 Y* N' g6 L' D          5 [  I$ v6 r9 i* a3 g/ W
          for(i=0;i<Num;i++)
/ V: [5 F: w9 ~( k  ]: ?+ @' P           { 4 i. k  @: E% g
           DataPort=0;   //清空数据,防止有交替重影
7 M: ?3 J$ d5 t# a+ y+ K( a           LATCH1=1;     //段锁存
/ B. j) G2 r; m            LATCH1=0;
; @8 l/ [, [& j" a+ K0 Q. u1 s$ y* S' a7 L! D" T
           DataPort=dofly_WeiMa[i+FirstBit]; //取位码
" W8 z- {' g1 g* @9 l2 m4 u. x          LATCH2=1;     //位锁存
# a3 ^' ?# F( |- W3 s1 J! i; ?$ c          LATCH2=0;
5 r6 H8 f3 j" r4 b- ~
+ T7 ]! `0 o& ]9 b2 \0 ?           DataPort=TempData[i]; //取显示数据,段码
1 T& @. x5 l8 W. ]; p          LATCH1=1;     //段锁存  H% A. ?: Q+ i, w" S& Y. _* p
           LATCH1=0;+ R) m- c- ^( r
       % b- x3 U) ?+ G# I9 b2 H
           Delay(200); // 扫描间隙延时,时间太长会闪烁,5 M# o+ f3 o6 @
                   //太短会造成重影2 @# B( W0 ?6 [; K! ?) }
6 |+ d8 o- N/ N- U
       }
4 |% `2 d8 z4 a) U3 u6 O7 n9 h1 h
3 ~6 M! N. Y) D8 l}
0 q( d: E1 N- _  C; x7 Ivoid Display(unsigned char FirstBit,unsigned char Num)
( i/ d- M0 h+ o! Z{
% z5 U2 b1 G! i( U      static unsigned char i;% ~: U. X# F8 A& g2 C
           . B' J4 c5 _. M
                   DataPort=0;   //清空数据,防止有交替重影
+ D+ C0 ^- i2 @, V0 a2 Z               dula=1;     //段锁存5 ]( F, `% W2 `. g: b
               dula=0;" P% _7 w, t; M4 c3 t% Y7 ~3 C
7 \* H$ a' w" ^; s9 Q  g: o- m, P
               DataPort=dofly_WeiMa[i+FirstBit]; //取位码
; d6 s9 X9 Z1 h               wela=1;     //位锁存! z2 n5 ]; g1 r8 `3 L$ d
               wela=0;
8 h( h" ~) Y, d: d3 u( z
. W5 [" F1 X& Z  w/ W               DataPort=dofly_DuanMa[disp[i]]; //取显示数据,段码
7 e& d& A3 o7 W+ W3 u' \               dula=1;     //段锁存& u& }( `, _4 l: X
              dula=0;/ b' T7 H+ j, @/ ~. N; w& ^. t
               i++;
4 y4 H* h& r2 A$ _! S2 `. V2 X; }                if(i==Num)
! K- B8 F" G5 R% m# {* O                        i=0;
7 k: E# ?( ]4 M" k}

该用户从未签到

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-9-10 19:05 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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