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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
下面两个子程序中有什么区别呢?
- X2 `8 t* }* m* }7 g' P8 Jvoid Display(unsigned char FirstBit,unsigned char Num)1 e7 o4 I- T1 q3 ?. V9 y! ~' V
{
* x0 t) b- }7 Z  q; m! r9 q6 I      unsigned char i;  Z% T# Q3 ~- Y1 {6 Z+ H
          
0 ]" Z1 ~2 u( @: J          for(i=0;i<Num;i++)
6 M# ~( n$ {. `8 B1 y/ R           {
7 B' K( ]) u; z           DataPort=0;   //清空数据,防止有交替重影) I' E$ l9 O  [
           LATCH1=1;     //段锁存
9 \1 P* G; L# A            LATCH1=0;
5 u& Q1 q- H. D, {! n9 b+ ]
4 m0 ]2 q* a" c0 ^6 v2 h: H           DataPort=dofly_WeiMa[i+FirstBit]; //取位码
. |, h( P9 ^9 L" H* E2 Q          LATCH2=1;     //位锁存
; n( e" `/ x- j          LATCH2=0;
2 j0 {1 c5 Q4 ?% y7 Z: T$ p; V& K5 T# E8 V4 _
           DataPort=TempData[i]; //取显示数据,段码" G3 `1 }# x% r; a# l" k
          LATCH1=1;     //段锁存
) Q/ I0 k5 J5 {  ^( n8 z           LATCH1=0;$ a- ?5 k8 T( ^1 I- a0 c
       9 z. e  j$ H' Q) H
           Delay(200); // 扫描间隙延时,时间太长会闪烁,% U( h: C3 }0 {2 ^8 N( s
                   //太短会造成重影: P6 V1 Q  E4 G+ E  D
1 W  x/ f5 M6 I7 B2 j
       }2 S) q) \3 e) n( E7 Q
3 E; a3 }, J, T* D
}
" J3 _4 I3 _; I+ Fvoid Display(unsigned char FirstBit,unsigned char Num)
$ C$ P0 D5 n2 c' t0 i1 L, F! }' B{* r3 q9 L5 T. y& R# n% S
      static unsigned char i;1 V/ i) g  k8 q7 Q
          
& B2 W2 _' ]2 `0 z- V2 o                   DataPort=0;   //清空数据,防止有交替重影- K3 Y. `5 @1 a
               dula=1;     //段锁存0 f  e" O  m! p2 r: u* e
               dula=0;4 R" f/ @) E( X+ w7 V, H$ L3 D
& s' Y- V1 A. b+ d6 m, W5 C
               DataPort=dofly_WeiMa[i+FirstBit]; //取位码 " |3 L: ~, Y7 Y3 \
               wela=1;     //位锁存
) n- b$ t5 f9 }% l. w               wela=0;
  e  e6 j& f$ F. ~( w9 P, S1 m8 ~& J
               DataPort=dofly_DuanMa[disp[i]]; //取显示数据,段码
7 ~% _8 `% T" I( B3 p               dula=1;     //段锁存' R) B2 ~' i1 ?3 O7 h
              dula=0;
3 `/ c6 T! K$ b6 t3 N               i++;
. R4 |3 F5 e2 h* ^                if(i==Num)" X  Z8 t' D7 g/ e: \- c
                        i=0;8 D5 {# s8 X3 Q8 Q+ Z8 D, V$ H
}

该用户从未签到

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-6-28 18:39 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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