c语言编程中static运用方法

操作方法

  • 01

    c语言中static运用方法一、c程序存储空间布局 C程序一向由下列有些组成: 1)正文段——CPU履行的机器指令有些;一个程序只要一个副本;只读,防止程序因为意外事故而修正本身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的大局变量,寄存在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的大局变量;内核将此段初始化为0。 4)栈——增加方向:自顶向下增加;主动变量以及每次函数调用时所需求保管的信息(回来地址;环境信息)。 5)堆——动态存储分。 |-----------|| ||-----------||栈||-----------|| | || |/ || || || /| || | ||-----------||堆||-----------||未初始化||-----------||初始化||-----------||正文段||-----------| 语言中static运用方法(2)二、面向进程程序设计中的static 1.大局静态变量 在大局变量之前加上关键词static,大局变量就被界说变成一个大局静态变量。 1)内存中的方位:静态存储区(静态存储区在整个程序运转时间都存在) 2)初始化:未经初始化的大局静态变量会被程序主动初始化为0(主动目标的值是恣意的,除非他被显现初始化) 3)效果域:大局静态变量在声明他的文件之外是不行见的。精确地讲从界说之处开端到文件完毕。 界说大局静态变量的优点: 不会被其他文件所拜访,修正 其他文件中能够运用一样姓名的变量,不会发生冲突。 2.部分静态变量 在部分变量之前加上关键词static,部分变量就被界说变成一个部分静态变量。 1)内存中的方位:静态存储区 2)初始化:未经初始化的大局静态变量会被程序主动初始化为0(主动目标的值是恣意的,除非他被显现初始化) 3)效果域:效果域仍为部分效果域,当界说它的函数或许句子块完毕的时分,效果域随之完毕。 注:当static用来润饰部分变量的时分,它就改动了部分变量的存储方位,从本来的栈中寄存改为静态存储区。可是部分静态变量在脱离效果域之后,并没有被毁掉,而是依然驻留在内存傍边,直到程序完毕,只不过咱们不能再对他进行拜访。 当static用来润饰大局变量的时分,它就改动了大局变量的效果域(在声明他的文件之外是不行见的),可是没有改动它的寄存方位,仍是在静态存储区中。 3.静态函数 在函数的回来类型前加上关键词static,函数就被界说变成静态函数。 函数的界说和声明默许情况下是extern的,但静态函数只是在声明他的文件傍边可见,不能被其他文件所用。 界说静态函数的优点: 其他文件中能够界说一样姓名的函数,不会发生冲突 静态函数不能被其他文件所用。 存储阐明符auto,register,extern,static,对应两种存储期:主动存储期和静态存储期。 auto和register对应主动存储期。具有主动存储期的变量在进入声明该变量的程序块时被树立,它在该程序块活动时存在,退出该程序块时吊销。 关键词extern和static用来阐明具有静态存储期的变量和函数。用static声明的部分变量具有静态存储持续期(static storage duration),或静态规模(static extent)。尽管他的值在函数调用之间坚持有用,可是其姓名的可视性仍约束在其部分域内。静态部分目标在程序履行到该目标的声明处时被初次初始化。 拓展剖析: 术语static有着不寻常的前史.起先,在C中引进关键词static是为了表明退出一个块后依然存在的部分变量。随后,static C中有了第二种意义:用来表明不能被其它文件拜访的大局变量和函数。为了防止引进新的关键词,所以仍运用static关键词来表明这第二种意义。最终, C++重用了这个关键词,并赋予它与前面不一样的第三种意义:表明归于一个类而不是归于此类的任何特定目标的变量和函数(与Java中此关键词的意义一样)。

(0)

相关推荐

  • 在C语言编程中如何使运行结果停留在屏幕上

    C语言是一种很受欢迎的编程语言,初学者更是喜欢用其来编程,然而对于初学者常常遇到运行结果一闪而过而不能停留在屏幕上这一问题.其实这问题也是很好解决的,所以我们不应怀疑是自己编的程序有错误.下面我就讲讲 ...

  • .NET编程中[未能加载文件或程序集]的处理方法

    在.NET编程中经常需要把自己电脑编译好的程序移动到其它电脑上进行调试,转移过程中就会出现各种各样的问题.其中系统错误[未能加载文件或程序集]就是常见的一项错误.下面就介绍一下对应的处理方法. 解决思 ...

  • Java编程中为了性能优化应做到的26件事

    操作方法 01 电脑内存爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了.下面南宁达内小编根据网络资源 ...

  • Java中的main()方法详解

    在Java中,main()方法是Java应用程序的入口方法,,因为JAVA是在C++的基础上开发的语言,main也是c++的程序入口,这里就说一下JAVA的main方法.也就是说,程序在运行的时候,第 ...

  • Java编程中必备的十种技能

    操作方法 01 作为一个语言编程技术文档工程师,我个人认为掌握计算机语言需要一些基本技能.以下这几点相信能够帮你翻越Java计算机编程这座山. 02 1.读编程手册. 无论是Java或者c++程序员常 ...

  • C语言编程的内存布局

    操作方法 01 C语言编程程序的内存如何布局 C语言程序连接过程中的特性和常见错误 C语言程序的运行方式 一:C语言程序的存储区域 由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译- ...

  • c语言编程常见错误集锦(c语言常见错误总结)

    你写的程序老是提示:数组越界?变量未初始化?字符串溢出?那么巧了!即使是最好的程序员也无法完全避免错误.这些错误可能会引入安全漏洞.导致程序崩溃或产生意外操作,具体影响要取决于程序的运行逻辑.C 语言 ...

  • win7如何更改语言 win7系统中将电脑语言改成英文的方法步骤介绍

    今年evad3rs团队发布的iOS 7完美越狱工具有些特殊,中国版iOS7完美越狱工具中,捆绑有太极助手插件,此插件类似流氓插件,容易导致iOS越狱设备出现白苹果现象(国外版无此插件)。所以就出现了一 ...

  • win7下c语言编程软件有哪些

    win7下c语言编程软件有哪些.好多刚开始接触c语言的朋友都想知道用上面软件开发c语言比较好,一般来说微软的东西肯定是最好的,更适合新手学习,等上手了就可以接触别的软件了.这里脚本之家小编就为大家分享 ...