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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
下面两个子程序中有什么区别呢?* X5 |+ r9 t/ u; }
void Display(unsigned char FirstBit,unsigned char Num)" m( d) Z* O/ Y2 x# `" K1 l
{6 R8 ?! J1 e* V% r
      unsigned char i;& m! Y- _2 V6 S4 |# p% d
          5 O& |2 A7 r) e: M; x
          for(i=0;i<Num;i++)
3 \+ A% C( H5 v2 o! ~0 m           {
& J/ a, i! T. i3 \/ E2 [           DataPort=0;   //清空数据,防止有交替重影" p' ?& F7 d% X. B. h, P! F
           LATCH1=1;     //段锁存
2 s" h5 D2 k3 }8 E  f& T2 b' I            LATCH1=0;
% l9 @' h3 _( W
; E) w8 `0 b9 R) N           DataPort=dofly_WeiMa[i+FirstBit]; //取位码
* @0 v( V6 {5 I: F& d; J9 ^          LATCH2=1;     //位锁存
( L; U" t5 b* J" z% {8 C/ m- ~* L6 m          LATCH2=0;
  p5 i* p- \7 _1 r/ z7 s: z& Y# N, M- L  Y& Z/ j0 A5 v' [6 h5 b
           DataPort=TempData[i]; //取显示数据,段码! L# l1 o8 \% X  s* Y) H* a" ?
          LATCH1=1;     //段锁存, A7 U/ C" N7 {1 m& g1 u
           LATCH1=0;
) O4 \+ l' z, w6 W1 Q5 u       - G, ^5 H0 W, L1 X
           Delay(200); // 扫描间隙延时,时间太长会闪烁,  D% U% w* y* ~# y# s3 T
                   //太短会造成重影
$ c5 D1 A9 p, @, F1 F, m% k* F) \* k' f; ?
       }
  v) W  o8 l+ h% Y" O) U) d6 E5 G7 k# \
}- V  N! a) N, T2 O3 b5 K7 e( u
void Display(unsigned char FirstBit,unsigned char Num)7 d( \* T0 G+ Z9 o
{, t; B8 R0 p! F; P; t( z, D
      static unsigned char i;
0 m2 u4 N# U8 c7 @8 c           # k5 S( k9 \: `( t. f
                   DataPort=0;   //清空数据,防止有交替重影
6 E7 W+ X) {& P' L$ N- X/ O               dula=1;     //段锁存
" k# ~6 B+ r9 x* s2 U8 o% U               dula=0;
3 A9 D+ z5 b/ E( W: o4 `% j$ {6 R" K
               DataPort=dofly_WeiMa[i+FirstBit]; //取位码 ; V9 J$ @# }- \" O: i; N
               wela=1;     //位锁存( ^2 U5 d5 c, i: S0 I: y
               wela=0;5 m* i  s  u7 H* c2 d; K6 J
# @2 t* a- H0 G' P
               DataPort=dofly_DuanMa[disp[i]]; //取显示数据,段码
0 S' R/ A0 f9 A* Z               dula=1;     //段锁存
. k* z6 E' A# P; T7 t) V% v* {' T  M              dula=0;1 |) N) k: k8 p6 e2 O" v
               i++;
: f4 w2 R6 C8 Y) w- I. t9 Q4 b                if(i==Num)
8 d7 G. g+ r+ @2 l                        i=0;" s2 Q5 ^5 O) W4 g$ d. o) l
}

该用户从未签到

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-8-20 14:01 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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