找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1574|回复: 1
打印 上一主题 下一主题
收起左侧

C语言static变量求指点用法?下面的程序static函数是什么作用呢?

[复制链接]
跳转到指定楼层
楼主
ID:427818 发表于 2018-11-22 14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void key()
{
  static u16 k=0;
        
  if(k1==0)
{
        delay(1000);
        if(k1==0)
{
        P2=~smgd[k];
        led=~led;
        while(k1==1);
        k++;
        if(k==16)
        {
        k=0;
        }        
}
        while(!k1);

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:424598 发表于 2018-11-22 16:03 来自手机 | 只看该作者
最主要有两点用途。

让一个变量长期有效,而不管其是在什么地方被申明。比如:

int fun1()

{

static int s_value = 0;

....

}

那么fun1不管在什么地方被调用,当函数退出后,s_value最后的值将一直会被系统保存(相当于一个全局变量),下次s_value再被用到时,也即当fun1()再次被调用时,s_value初始值将是最近被保存过的值(请注意s_value初始化操作只会被执行一次,即上述s_value =0 这个语句)。

2.避免多个文件使用了相同的变量名而导致冲突

 比如有多个文件,分别由几个人独立开发的。假定他们在各自的文件中定义相同的“全局”变量名(仅仅指在他们独自的文件中全局),当系统集成时,由于他们使用了名字一样的“全局”变量,导致有难于遇见的问题。解决这个问题方便的做法就是在各自文件中,在相同的全局变量申明前加上static修饰符。这样系统就会为他们分配不同的内存,互不影响了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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