精华内容
下载资源
问答
  • c语言 static
    2022-07-06 21:20:49


    学习时间:


    学习产出:

    1、在修饰变量的时,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。(相当于改变类型 变为全局变量)

    2、static修饰全局变量的时,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。

    3、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存放在全局数据区的静态变量区。

    extern 声明不用告诉细节

    更多相关内容
  • c语言static

    2021-05-20 05:27:26
    c语言static[编辑]概述static在C语言中是静态存储类型的意思,用static声明的变量在函数调用结束后依然存在,也就是在整个程序中都能用这个变量。c语言:C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标...

    c语言static[编辑]

    概述

    static在C语言中是静态存储类型的意思,用static声明的变量在函数调用结束后依然存在,也就是在整个程序中都能用这个变量。

    c语言:

    C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

    二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

    特点:

    1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

    2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

    3、不同的变量类型可以用结构体(struct)组合在一起。

    4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

    5、部份的变量类型可以转换,例如整型和字符型变量。

    6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。

    7、预编译处理(preprocessor)让C语言的编译更具有弹性。

    static:

    像在VB,C#,C,C++,Java中我们可以看到static作为关键字和函数出现,在其他的高级计算机语言如FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、PROLOG、Ada等语言中也是有出现的,只是有着不同的作用,对于其具体作用,读者有需要的时候是可以具体查阅的。

    c语言static:

    static声明的变量在c语言中的特征:

    1、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。

    2、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。

    作用:

    1、隐藏:当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。

    2、保持变量内容的持久:存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的。

    3、默认初始化为0:其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0x00,某些时候这一特点可以减少程序员的工作量。比如初始化一个稀疏矩阵,我们可以一个一个地把所有元素都置0,然后把不是0的几个元素赋值。如果定义成静态的,就省去了一开始置0的操作。再比如要把一个字符数组当字符串来用,但又觉得每次在字符数组末尾加’\0’太麻烦。如果把字符串定义成静态的,就省去了这个麻烦,因为那里本来就是’\0’。

    总结:首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。

    static语句的语法包含的部分:

    描述varname必需的。变量的名称;遵循标准变量命名约定。

    subscripts可选的。数组变量的维数;最多可以定义60维的多维数组。

    如果不显式指定lower,则数组的下界由Option Base语句控制。如果没有Option Base语句则下界为 0。

    New可选的。用它可以隐式地创建对象的关键字。如果使用New声明对象变量,则在第一次引用该变量时将新建该对象的实例,因此不必使用Set语句来对该对象引用赋值。New关键字不能用来声明任何内部数据类型的变量,也不能用来声明从属对象的实例。

    type 可选的。变量的数据类型;可以是Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对变长的字符串)、Object、Variant、用户定义类型或对象类型。所声明的每个变量都要有一个单独的 As type 子句。

    static函数内部函数和外部函数:

    当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。

    内部函数(又称静态函数):如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。定义一个内部函数,只需在函数类型前再加一个“static”关键字即可。

    使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。

    外部函数:在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数。

    与dim语句声明的变量的区别:

    static只能在sub或function过程中使用,在退出sub或function过程后变量的值保留;dim使用在sub或function过程中时,退出sub或function过程后变量的值不保留。

    注意:

    Static语句与Static关键字很相似,但是针对不同的效果来使用的。如果使用 Static 关键字来声明一个过程,则该过程中的所有局部变量的存储空间都只分配一次,且这些变量的值在整个程序运行期间都存在。对非静态过程而言,该过程每次被调用时都要为其变量分配存储空间,当该过程结束时都要释放其变量的存储空间。Static语句则用来在非静态的过程中声明特定的变量,以使其在程序运行期间能保持其值。

    在初始化变量时,数值变量被初始化为0,变长的字符串被初始化为一个零长度的字符串,而定长的字符串则用0填充。Variant 变量被初始化为Empty。用户自定义类型的变量的每个元素作为各自独立的变量进行初始化。

    如果在过程中使用Static语句,应和其它的声明语句(如Dim)一样将其放在过程的开始。

    参考资料: 百度百科

    扩展阅读:

    相关词条:

    合作编辑:

    分享到:

    更多

    网络营销词典内容均由网友提供,仅供参考。如发现词条内容有问题,请发邮件至info # wm23.com。

    展开全文
  • 以下是对C语言中的static修饰函数进行了详细的分析介绍,需要的朋友可以过来参考下
  • c语言static说明

    千次阅读 2022-04-21 11:57:22
    static [TOC] 1.概述 static 可以控制变量的储存方式和可见性 static局部变量在编译阶段分配空间,在程序结束时释放 静态全局变量不能被其它文件所见,在其他文件中也可以定义同名变量,不会冲突 可提高程序...

    static

    [TOC]

     

    1.概述

    static 可以控制变量的储存方式和可见性

    static局部变量在编译阶段分配空间,在程序结束时释放

    静态全局变量不能被其它文件所见,在其他文件中也可以定义同名变量,不会冲突

    可提高程序的模块性,有利于扩展和维护

    改变变量的生命周期

    2.static的作用

    static 修饰的变量存放在全局数据区的静态变量区,包括全局静态变量和局部静态变量,并且自动初始化为0

    2.1 修饰变量

    static修饰的静态局部变量只执行一次初始化,延长该变量的生命周期,程序结束后释放

    2.2 修饰全局变量

    这个全局变量只能在本文本中访问,不能再其他文件中访问

    2.3 修饰函数(静态函数)

    static修饰一个函数,则这个函数只能在本文件中调用,不能被其他文件调用

    3.注意

    不能使用普通变量来初始化静态变量,只能用常量初始化

     

    如:

    int a = 1;

    static int b = a; //错误,a在程序执行后才初始化,b在编译时分配空间

    展开全文
  • C语言static关键字的作用
  • C语言static静态变量详解

    有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,这时就应该指定局部变量为静态局部变量,用关键字static进行声明。

    通过用static类型声明后的变量,其变量的内存空间位于内存的全局静态区,仅会初始化一次,这是一个非常重要的特性,请大家通过如下的程序理解:

    #include<stdio.h>
    static a=5;
    int fun()
    {
        a=a*2;
        printf("a=%d\n",a);
        return 0;
    }
    int main()
    {
        int i=0;
        for(i=0;i<10;i++)
        {
            fun();
        }
        return 0;
    }

    请大家先自行理解,然后上机运行如上代码,可以观察a的值输出如下:

    a=10
    a=20
    a=40
    a=80
    a=160
    a=320
    a=640
    a=1280
    a=2560
    a=5120
    #include <stdio.h>		//<>所表示的头文件,属于系统包含 
    //#include "max.h" 		//""所表示的头文件,属于用户自己定义 
    
    
    static int g_a=1000; 	//全局变量,从定义的地方开始,到文件结束,所包含的函数都可以使用 
    
    int main()	//有且仅有一个,也成为入口函数, 
    {
    	int m_a=100;			//局部变量
    	prit(m_a);
    //	prit(m_a);
    //	prit(m_a);
    
    //	printf("\n") ;
    //	
    //	printf("m_a=%d\n", m_a);
    //	g_a += 100;
    //	printf("g_a=%d\n", g_a);	
    //    extern g_b;				//声明变量,不开辟空间,声明可以改变作用域 
    //	g_b += 100;
    //	printf("g_a=%d\n", g_b);	
    	return 0; 
    } 
    
    
    static int g_b=1000;	//全局变量,从定义的地方开始,到文件结束,所包含的函数都可以使用 
    //函数之间是平时的,只有调用关系 
    //局部变量全称:局部静态变量 
    void prit(int a)		//局部变量,当函数调用时,才定义变量 
    {
        auto int aa=110;			//局部变量,当函数调用时,才定义变量 
    //	printf("prit_a=%d\n",a);
    //	printf("prit_aa=%d\n",aa);
    	
    //	g_a += 200; 
    //	printf("g_a=%d\n", g_a);
        
    	g_b += 200; 
    	printf("g_a=%d\n", g_b);
    
    //   printf("aa = %d\n", aa);
    //	{	
    //		int aa=100; 	//局部变量,位置是复合语句,块作用域 
    //		printf("aa =%d\n",aa);
    //		
    //	}
    //	printf("aa = %d\n", aa);
    
    //    static int c=1;		//静态局部变量,静态区
    //	c +=5;
    //	printf("a = %d\n",c); 
    	 
    }
    
    
    

    这个结果的原因在于,每次a的值是接着上一次函数调用的值继续运算的,并非每次都初始化从5开始计算,这就是static的特性。

    展开全文
  • 主要介绍了C语言 static、extern与指针函数,有需要的朋友可以参考一下
  • C语言 static变量和函数详解

    千次阅读 2020-11-14 09:25:03
    static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。 但是对于c语言初学者,static由于使用灵活,并不容易掌握。本文就staticc语言中的应用进行总结,供参考使用。错漏之...
  • C语言中定义的局部变量包括函数参数都存储在栈区,但static修饰局部变量时,改变了变量的存储属性,被static修饰的变量是存储在静态区的。 存储在静态区的变量出了作用域不会销毁,静态变量的生命周期就是程序的生命...
  • c语言static变量初始化

    千次阅读 2020-10-30 11:39:55
    static int value=i++; printf("%d\n",value); } int main() { fun(0); func(1); fun(2); return 0; } 书中写道:程序输出结果为 0 0 0 作者原意是想表明 static int value=i++;是变量value由于static的修饰...
  • static在c里面可以用来修饰变量,也可以用来修饰函数。先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。 代码如下:int a ;int main(){ int b ...
  • static 的作用如下: 1.static定义的静态全局变量 static定义的静态全局变量只可以在本文件中被使用,比如你在1.c源 文件中定义了一个静态的全局变量,你这时候又新建了一个叫2.c的 源文件,那你想在2.c中用extern ...
  • C语言static的使用

    万次阅读 多人点赞 2019-05-10 16:55:13
    C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为...
  • C语言 static用法

    2021-03-27 00:29:44
    【代码】C语言 static用法。
  • static从英文上翻译是静态的意思,在C语言static所起的作用也正是静态。对于局部变量而言,其作用域是局部的如某一子函数体,程序在每次执行时调用该子函数时,其声明的局部变量都会重新赋值。那如果我们想让程序...
  • 关于C语言static定义函数类型的具体解释 分类? C语言知识2011-08-17 11:34?231人阅读? 评论(0? \o "收藏" 收藏? \o "举报" 举报 ? ? 内部函数和外部函数? 函数一旦定义后就可被其它函数调用 ? 但当一个源程序由多个...
  • static的灵活运用, 以及生命周期的改变, 让你写代码由儒生入儒圣
  • C语言static的用法

    2013-01-21 16:21:27
    C语言static的用法
  • C语言static关键字的作用(有三个作用)

    千次阅读 多人点赞 2021-07-11 00:33:11
    当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。 2.保持变量内容的持久 变量不加 static 修饰: #include <stdio.h> void test() { int num = 0; num++; printf("%d ", ...
  • C语言 static的使用

    千次阅读 多人点赞 2021-12-19 23:14:40
    你知道C语言static 有几种用法? 首先 static 的翻译是 静止的 1. static 可以修饰局部变量 2. static 可以修饰全局变量 3. static 可以修饰函数 我们一个一个来说 首先让我看看这段代码 #include&...
  • c语言static函数声明和函数定义 都在.c文件 都要加static修饰
  • 问错了,编辑一下,我是想问为什么加了static之后输出的y全部是3,但是x的输出又是根据static的y的变化得到的? 我知道x+=y++的意思,x,y的定义写在函数外面是什么意思。 以及请问能否详细解释加和不加static...
  • C语言 static静态变量的作用 static c语言的变量种类 静态变量通过关键字 static 进行声明,该变量存储在数据段上,也就是内存上,可以改变变量的作用域和生命周期。 对于局部变量作用域依旧没有改变,...
  • C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条,分别是: 一是隐藏功能,对于static修饰的函数和全局变量而言 二是保持持久性功能,对于static修饰的局部变量而言。 三是因为存放在静态区...
  • static 局部变量 static 除了可以修饰全局变量,还可以修饰局部变量,被 static 修饰的变量统称为静态变量(Static Variable)。 不管是全局变量还是局部变量,只要被 static 修饰,都会存储在全局数据区(全局变量...
  • static定义一个变量到底需不需要加上数据类型呢?这里没加也没出错 #include int main() { int i; static a=1; for(i=0;i;i++) a=a+i; printf("%d\n",a); } ![图片说明]...
  • c语言static关键字用法详解

    万次阅读 多人点赞 2018-04-05 18:18:14
    static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。 但是对于c语言初学者,static由于使用灵活,并不容易掌握。本文就staticc语言中的应用进行总结,供参考使用。错漏...
  • C语言static用法详解

    万次阅读 多人点赞 2022-04-19 19:06:08
    文章目录前言一、static修饰变量1.修饰局部变量2.修饰全局变量二、static修饰函数总结 前言 static关键字不仅可以用来修饰变量,还可以用来修饰函数。在使用static关键字修饰变量时,我们称此变量为静态变量。静态...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 235,103
精华内容 94,041
关键字:

c语言 static

友情链接: liblibmplmpu_m3.zip