当前位置: 首页 > news >正文

可以做行程的网站郑州网站建设公司排行榜

可以做行程的网站,郑州网站建设公司排行榜,东莞大岭山注册公司,甘肃住房建设厅网站1.static修饰局部变量 这是static关键字使用最多的情况。我们知道局部变量是在程序运行阶段在栈上创建的,但是static修饰的局部变量是在程序编译阶段在代码段(静态区)创建的。所以在static修饰的变量所在函数执行结束后该变量依然存在。 //…

1.static修饰局部变量

这是static关键字使用最多的情况。我们知道局部变量是在程序运行阶段在栈上创建的,但是static修饰的局部变量是在程序编译阶段在代码段(静态区)创建的。所以在static修饰的变量所在函数执行结束后该变量依然存在。

//代码1
#include <stdio.h>
void test()
{int i = 0;i++;printf("%d ", i);
}
int main()
{int i = 0;for(i=0; i<10; i++){test();}return 0;
}
//代码2
#include <stdio.h>
void test()
{static int i = 0;i++;printf("%d ", i);
}
int main()
{int i = 0;for(i=0; i<10; i++){test();}return 0;
}

我们可以比较一下上面两段代码的运行结果,很容易发现代码1中的i每次打印的值都相同,代码2中的i每次打印的值都是之前的值加上1,所以代码1中的i每次都会在test函数运行结束时被销毁,而代码2中的i不会被销毁。

需要注意的是:static int i=0这句代码作用于程序编译阶段,而程序运行阶段这句代码是不会产生任何效果的。为了验证这一点,我们可以进行如下操作:

  1. 使用这样的代码
    #include<stdio.h>
    int main()
    {int j = 0;static int i = 0;return 0;
    }
  2. 进入调试模式
  3. 反汇编 这就是这段代码的汇编代码了,下面对这段汇编代码进行讲解

 因为这条语句无汇编代码,所以程序运行过程中直接无视这条语句。该语句作用于程序编译阶段,编译阶段在运行阶段之前,也就是说静态局部变量i在程序编译阶段就创建好了,在整个程序运行结束之后才会被销毁。所以,static关键字延长了局部变量的生命周期。

2.static修饰全局变量

同样的,经过static修饰的全局变量和局部变量一样,在程序编译阶段就会被分配内存

未经过static修饰的全局变量具有外部链接属性,使用extern关键字即可以跨文件使用

//代码1
//add.c
int g_val = 2018;
//test.c
int main()
{extern int g_val;printf("%d\n", g_val);return 0;
}//代码2
//add.c
static int g_val = 2018;
//test.c
int main()
{extern int g_val;printf("%d\n", g_val);return 0;
}

运行这两段代码,我们发现代码1正常,代码2在编译的时候会出现连接性错误。;

所以,经static修饰的全局变量的生命周期不变,作用域变小,只能够在本源文件内使用 

延申: 在使用extern声明外部变量时不能设定初始值,但是可以在声明之后单独给该变量赋值。

3.static修饰函数

和static修饰全局变量十分类似,经过static修饰的函数的外部链接属性也被限制了,即只能在本源文件使用

//代码1
//add.c
int Add(int x, int y)
{return x+y;
}
//test.c
int main()
{printf("%d\n", Add(2, 3));return 0;
}//代码2
//add.c
static int Add(int x, int y)
{return x+y;
}
//test.c
int main()
{printf("%d\n", Add(2, 3));return 0;
}

运行两段代码,我们发现代码1正常,代码2在编译的时候会出现连接性错误。

所以,一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。

http://www.shuangfujiaoyu.com/news/62911.html

相关文章:

  • 青建设厅官方网站海省小说关键词生成器
  • 企业网站一般要素网络营销服务有哪些
  • 跨境电商网站建设方案书微信管理软件
  • 温州哪里有网站建设湖北seo推广
  • 做网站用到的java技术优化排名 生客seo
  • 七宝做网站自己的网站怎么建立
  • 有没有教做零食的网站seo搜索引擎优化期末考试
  • 长沙网络营销推广宁波企业seo推广
  • 企业网站建设思路禁止搜索引擎收录的方法
  • 深圳网站制作价格常见的网络营销方法
  • 橙色网站配色seo关键词排名优化案例
  • 母婴网站建设方案怎样优化网站排名靠前
  • 厦门市建设局网站住房保障专栏百度竞价代运营公司
  • wordpress设置网站导航企业网站搜索引擎推广方法
  • 万江做网站如何发布视频赚钱
  • 做360手机网站快速排名软件搜索图片
  • 做网站3年3万百度推广seo优化
  • 网页游戏大全首选aso优化app推广
  • 网站的文章参考文献怎么做长沙优化科技有限公司正规吗
  • 做网站优化的教程抖音推广方案
  • 环江住房和城乡建设部网站重庆森林粤语
  • 建设物流网站的规划青岛网站权重提升
  • 网站什么时候做SEO优化最合适找谁做百度关键词排名
  • 漯河市万金镇网站建设谷歌推广怎么操作
  • 做早餐烧菜有什么网站网站seo优化徐州百度网络
  • 一个上线的网站需要怎么做电商平台发展现状与趋势
  • 做网站赚钱难南京最大网站建设公司
  • 中山顺的网站建设百度搜索使用方法
  • 自己有域名如何做网站郑州网站优化
  • wordpress防垃圾评论优化设计五年级下册语文答案