- Jm-R
-
当然不同。虽然外部变量和外部静态变态存储方式相同,但作用域是不同的。静态外部变量是同static定义的。
其不同之处在于,如果源程序是由多个源文件组成,那么,外部变量在所有的源文件中皆有效,而外部静态变量只在定义它的那个源文件中有效。
所以,如果是只在一个源文件中使用的外部变量在定义时一般都加static,这样会避免不必要的错误。
什么叫外部变量??
C程序由一组对象组成,这些对象包括程序中所使用的变量和实现特定功能的函数。变量可以分为函数内部定义、使用的变量和函数外部定义的变量,通常情况下,把函数内部定义、使用的变量称为内部变量或局部变量,而将在函数外部定义的、供许多函数所使用的变量称为外部变量,一般情况下,也可以称为全局变量。外部结构变量就是定义为结构体的外部变量2023-06-08 07:02:111
外变量的名词解释
外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。2023-06-08 07:02:203
C语言中,全局变量和外部变量有什么区别?
全局变量也称为外部变量,它是在函数外部定义的变量。 作用域不是整个源程序,是从定义处开始到程序结束。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。 有时需要在其他文件中使用extern来声明外部变量,以扩展外部变量的作用域。也可用static声明外部变量,使该变量不能被其他文件引用。有时候他们是一样的,只有稍微一点的区别而已,不用太过于区分的。2023-06-08 07:02:382
C语言中全局变量和外部变量的区别是什么?
全局变量和外部变量是从不同角度对同样的变量的称呼全局变量是相对于局部变量而言的,表示变量作用域没有限制,在任何函数内斗可以访问外部变量一般都是全局变量,其实就是一个声明,表示在其他文件定义的一个变量,是在多文件编译情况下跨文件访问的必要手段2023-06-08 07:02:471
什么叫外部变量,什么叫内部变量?
你说的是FLASH还是什么?2023-06-08 07:02:555
C语言中,全局变量和外部变量有什么区别!
在C语言中,全局变量的有效区域是本程序文件中定义语句之后的所有函数。外部变量是指定该变量已经在另一个程序文件中定义。C语言可以在编译连接生成可执行程序时,将多个程序文件生成一个可执行文件。2023-06-08 07:03:112
C语言中,全局变量和外部变量有什么区别!
外部变量也是全局变量,被定义成外部变量是指这个变量没有在当前代码中,而是在另一个代码或二进制文件中。比如我在a.c中定义了变量myvar,还有一个文件b.c,它要用a.c中的myvar,这就要让b.c知道myvar怎么定义的,有两种方法,一种是include a.c,但一般不这么做;还有一种方法是在b.c中也定义myvar,这个定义和a.c中一样,但是外部的(extern)。其实大部分时候是在a.h中声明(declare)extern myvar,然后在a.c中定义(define)myvar。b.c要用时include a.h就可以了外部变量是全局变量,它没在当前的代码中定义全局变量为非static的变量,并不在函数中2023-06-08 07:03:201
怎么在函数内说明外部变量?
外部变量 就是除了调用函数本身声明的临时变量之外的变量,通过实参传递给函数的形参的,静态变量时只函数调用时才可以使用 但是下次使用的时候可以用上次留下的值,全局变量时任何时候都可以使用,值也是一直保留的2023-06-08 07:03:281
外部变量的用extern声明外部变量
extern可省略不写。本文件里:在一个文件里,有不止一个函数,外部变量在第一个函数后面定义。若用extern在第一个函数前声明该变量则该变量可以在第一个函数中使用。多个文件中:在其他文件中若想要使用该文件中已声明的全局变量,则在其他文件头部声明该变量,即可使用该全局变量。file1.c file2.cint i,j; //定义全局变量 extern int i,j; //外部变量说明, extern可以省略char c; extern char c;void func() void func1(){ {i = 100; printf( i = %d, j = %d , i, j);j = 10;} }2023-06-08 07:03:341
PHP有哪几种外部变量?如何使用这几种变量?
你是指的什么外部变量种类?函数或类外的变量都叫外部变量。总体就是全局变量 内部变量。全局变量 。仅限当前页面。函数调用$var=[];$b="success";//这是外部变量function test()use($b){//这种方式直接调用$b 也可以global $b$a=[1,2,3];//这个是内部变量global $var;//这是全局变量}2023-06-08 07:03:481
c语言头文件中的内外部变量如何声明?
extern int c;是在函数app中说明的,所以c只能在app中可见。2023-06-08 07:04:081
外部变量的值不能够在lambda表达式中被改变 如何理解
对于基本类型,是指不能改变它的值;对于引用类型,是指不能改变它的指向。相当于加上final关键字修饰。2023-06-08 07:04:231
PHP function 里 怎么调用外部定义过的变量
global 获取2023-06-08 07:04:336
在函数体之外定义的变量的默认存储类型是什么?
局部变量 (1)在一个函数内部定义的变量是局部变量,只能在函数内部使用.(2)在主函数内部定义的变量也是局部变量,其它函数也不能使用主函数中的变量.(3)形式参数是局部变量.(4)在复合语句中定义的变量是局部于复合语句的变量,只能在复合语句块中使用.(5)局部变量在函数被调用的过程中占有存储单元.(6)不同函数中可以使用同名变量.在不同的作用域内,可以对变量重新进行定义.全局变量 (1)在函数外部定义的变量是全局变量,其作用域是变量定义位置至整个程序文件结束.(2)使用全局变量,可增加函数间数据联系的渠道.全局变量可以将数据带入在作用域范围内的函数,也可以将数据带回在作用域范围内的其它函数.使用全局变量可让函数带回多个值,但一定要注意全局变量传递数据是数据传递的后门.全局变量在程序中任何地方都可以更新,使用全局变量会降低程序的安全性.(3)提前引用外部变量,需对外部变量进行说明,或称申明.(4)使用程序中非本程序文件的外部变量,也要对使用的外部变量进行同上的申明,或用文件包含处理.(5)局部变量如与外部变量同名,则在局部变量的作用域内,外部变量存在,但不可见,外部变量的作用被屏蔽.(6)全局变量在程序运行过程中均占用存储单元.(7)在编程时,原则上尽量少用全局变量;能用局部变量,不用全局变量2023-06-08 07:04:501
C语言中extern的意思是什么?
extern是全局变量声明,只要声明全局变量就默认 前面加extern(程序员可以不加,但编译器默认加上)若本文件 引用别的文件中的全局变量 一定要加上extern 声明一下。例如 #include "my_Fun.c" extern int b;//b是在my_Fun.c中声明了的一个全局变量 这个extern 是个声明他可以在任何地方声明 引用了一个全局变量 (可以试试 在main()函数执行完之后声明 也不会出错)这样在 工程的总头文件中就不需要考虑 先#include 哪个文件了2023-06-08 07:05:008
关于西门子wincc编程软件外部变量地址范围只能从0-7是为什么
最多8位,不能再多2023-06-08 07:05:452
C语言关于外部变量
对,第一行是定义,可以放在其他的源文件里。第二行是声名(外部连接),告诉编译器,你要使用这个变量,叫它去寻找。当然找不到就会出错。如果源文件中的变量不想被其他的文件使用,可以声明为static type var(内部连接),这样这个变量就只能在当前文件中被访问。不用纠缠于这些,知道怎么用就行了。2023-06-08 07:05:542
c语言中存储类型自动,静态,外部,寄存都是什么意思
搜一下:c语言中存储类型自动,静态,外部,寄存都是什么意思2023-06-08 07:06:022
在c语言中,外部变量的隐含类别是什么?
在c语言中,外部变量的隐含类别是什么extern2023-06-08 07:06:221
全局变量是指什么?
全局变量也称为外部变量,它是在函数外部定义的变量。 全局变量既可以通过某对象函数创建,也可以是在本程序任何地方创建的。其作用域是整个源程序,可以被本程序所有对象或函数引用。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。拓展资料一、概念简介全局变量是编程术语中的一种。变量分为局部与全局,局部变量是由某对象或某个函数所创建的变量,只能被内部引用,而无法被其它对象或函数引用。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。二、编程简介编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。计算机虽然功能强大,但是脱离了程序就是一堆废铁,无法理解我们对它下的指令。而程序简单说来就是指令的合集,它告诉计算机应该如何执行特殊的任务。为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。2023-06-08 07:06:291
变量的存储类型有哪些
Turbo C2.0支持四种变量存储类型。说明符如下:auto static extern register 下面分别来介绍。 一、auto auto称为自动变量。局部变量是指在函数内部说明的变量(有时也称为自动变量)。用关键字auto进 行说明, 当auto省略时, 所有的非全程变量都被认为是局部变量, 所以auto实际上 从来不用。局部变量在函数调用时自动产生, 但不会自动初始化, 随函数调用的结束, 这 个变量也就自动消失了, 下次调用此函数时再自动产生, 还要再赋值, 退出时又自 动消失。 二、staticstatic称为静态变量。根据变量的类型可以分为静态局部变量和静态全程变量。1. 静态局部变量它与局部变量的区别在于: 在函数退出时, 这个变量始终存在, 但不能被其它 函数使用, 当再次进入该函数时, 将保存上次的结果。其它与局部变量一样。2. 静态全程变量Turbo C2.0允许将大型程序分成若干独立模块文件分别编译, 然后将所有模块 的目标文件连接在一起, 从而提高编译速度, 同时也便于软件的管理和维护。静态 全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量。它与 全程变量的区别是: 全程变量可以再说明为外部变量(extern), 被其它源文件使用, 而静态全程变量却不能再被说明为外部的, 即只能被所在的源文件使用。 三、externextern称为外部变量。为了使变量除了在定义它的源文件中可以使用外, 还要 被其它文件使用。因此, 必须将全程变量通知每一个程序模块文件, 此时可用 extern来说明。 四、registerregister称为寄存器变量。它只能用于整型和字符型变量。定义符register说 明的变量被Turbo C2.0存储在CPU的寄存器中, 而不是象普通的变量那样存储在内 存中, 这样可以提高运算速度。但是Turbo C2.0只允许同时定义两个寄存器变量, 一旦超过两个, 编译程序会自动地将超过限制数目的寄存器变量当作非寄存器变量 来处理。因此, 寄存器变量常用在同一变量名频繁出现的地方。另外, 寄存器变量只适用于局部变量和函数的形式参数, 它属于auto型变量, 因此, 不能用作全程变量。定义一个整型寄存器变量可写成:register int a;对于以上所介绍的变量类型和变量存储类型将会在以后的学习中, 通过例行程 序中的定义、使用来逐渐加深理解。2023-06-08 07:06:421
外部变量的隐含类别
自动存储类别。外部变量的作用域是整个程序,由编译程序在编译时为其分配空间自动进行存储,所以外部变量的隐含类别是自动存储类别。引进外部变量的原因是外部变量可以在所有函数间共享,保证程序运行外部变量的值是始终存在的。2023-06-08 07:06:491
c++ 全局变量 外部变量;
一样的,做大一点的项目时一般把全局变量写在一个文件中当外部变量,然后不同的文件用到时extern就可以了,这样方便管理2023-06-08 07:06:563
c语言外部变量问题
282023-06-08 07:07:036
外部变量怎么传进json里面
"touser":"xxx","msgtype":"text","text":{"content":"hello"}json哪里是这样写的,应这样写$txt={ touser:"xxx", msgtype:"text", text: { content:"hello" } };2023-06-08 07:07:161
c外部变量的定义与声明
LZ如果想弄清楚,自己用多个文件写个小程序,试试。。。估计你就明白了。。多文件编译。。需要用到extern2023-06-08 07:07:352
C语言关于外部变量声明与定义
extern 外部函数生命2023-06-08 07:07:553
什么是变量的存储类型
我们知道, 每一个变量都有一个类型。另外, 每一个变量都有一个存储类。变量的存储类是由它被定义的地方决定的, 并且, 如果用了关键字, 则还要由关键字决定。有四个关键字描述存储类: extern, auto, static 和 register。存储类决定了两件事, 第一, 它控制哪些函数可以访问一个变量,第二, 存储类决定了变量在内存中的时间。2023-06-08 07:08:054
JAVA代码中匿名内部类如何改变外部的变量呢?
可以将外部的变量设置成static,这样就可以修改了或者使用方法,将变量传进去。2023-06-08 07:08:143
Matlab如何在定义函数过程中使用外部的变量?
直接sum(x.*y,2)2023-06-08 07:08:253
c语言 中 为什么不将全局变量的定义放在头文件中
首先要说明什么是全局变量,c语言中全局变量一般是指定义在函数体外的变量。全局变量按可访问性可分为外部变量和内部变量。内部变量是指使用了static关键字修饰的全局变量,它的可访问范围(作用域)被限定在本源文件所在的链接文件模块中,不能被其它文件模块引用。反之没有被static关键字修饰的全局变量则是外部变量,其它文件模块可以通过extern关键字引用该全局变量并访问。要说明的是全局变量无论是内部变量还是外部变量,的存储类别都是静态的,也就是放到静态内存区域中,它编译链接阶段就已经分配好了固定的内存。搞清楚上面的内容,就很容易得出若把全局变量放在头文件会有哪些问题;一 对内部变量来说,每个include该头文件的文件模块中都会单独为这个内部变量分配静态内存空间,这个空间是相对独立的,是一种空间浪费,同时还失去了全局变量访问一致性的特点,实在没有什么意义。如果这个头文件只被一个模块使用,对于这个文件模块来说应该没啥问题。二 对外部变量来讲,这个头文件被多个文件模块include的情况下,链接过程会报错,因为符号冲突,所有include这个头文件的模块都会有这个全局符号。在这个头文件仅仅只被一个模块include的时候可以正常使用。经上分析得出要避免全局变量定义在头文件中,因为当这个头文件被多方include的时候会产生一些不必要的麻烦,就这么多。全局变量作用域范围较广,被错误修改后排查定位问题比较困难,若非必要尽少使用。下面说一下比较好的方式就是全局变量只定义在实现文件(.c,.m)中,对内部变量没啥说的它只在文件模块内部使用,对外部变量可以在该模块头文件中使用extern关键字修饰一下,这样其它文件模块只要直接include该头文件就可以使用模块中的外部变量了。2023-06-08 07:09:071
auto static extern的区别
auto 局部变量 auto 变量是用堆栈(stack)方式占用储存器空间,因此,当执行此区段是,系统会立即为这个变量分配存储器空间,而程序执行完后,这个堆栈立即被系统收回.在大括号{}内声明. 自动变量就是指在函数内部定义使用的变量。他只是允许在定义他的函数内部使用它。在函数外的其他任何地方都不能使用的变量。自动变量是局部变量,即它的区域性是在定义他的函数内部有效。当然这说明自动变量也没有链接性,因为它也不允许其他的文件访问他。由于自动变量在定义他的函数的外面的任何地方都是不可见的,所以允许我们在这个函数外的其他地方或者是其他的函数内部定义同名的变量,他们之间不会发生冲突的。因为他们都有自己的区域性,而且它没有链接性(即:不允许其他的文件访问他的)。来看看自动量的持续性。计算机在执行这个函数的时候,创建并为它分配内存,当函数执行完毕返回后,自动变量就会被销毁。这个过程是通过一个堆栈的机制来实现的。为自动变量分配内存就压栈,而函数返回时就退栈。static 静态变量一、局部静态变量局部变量按照存储形式可分为三种auto, static, register。 与auto类型(普通)局部变量相比, static局部变量有三点不同:1. 存储空间分配不同auto类型分配在栈上, 属于动态存储类别, 占动态存储区空间, 函数调用结束后自动释放, 而static分配在静态存储区, 在程序整个运行期间都不释放. 两者之间的作用域(有效范围)相同, 但生存期不同.2. static局部变量在所处模块在初次运行时进行初始化工作, 且只操作一次。3. 对于局部静态变量, 如果不赋初值, 编译期会自动赋初值0或空字符, 而auto类型的初值是不确定的.特点: static局部变量的”记忆性”与生存期的”全局性”所谓”记忆性”是指在两次函数调用时, 在第二次调用进入时, 能保持第一次调用退出时的值. 注意事项:1. “记忆性”, 程序运行很重要的一点就是可重复性, 而static变量的”记忆性”破坏了这种可重复性, 造成不同时刻至运行的结果可能不同.2. “生存期”全局性和唯一性. 普通的local变量的存储空间分配在stack上, 因此每次调用函数时, 分配的空间都可能不一样, 而static具有全局唯一性的特点, 每次调用时, 都指向同一块内存, 这就造成一个很重要的问题 ---- 不可重入性!!!二、外部静态变量/函数在C中static有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。, 但为了限制全局变量/函数的作用域, 函数或变量前加static使得函数成为静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件(所以又称内部函数)。注意此时, 对于外部(全局)变量, 不论是否有static限制, 它的存储区域都是在静态存储区, 生存期都是全局的. 此时的static只是起作用域限制作用, 限定作用域在本模块(文件)内部.使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名。 extern 变量外部变量 定义在程序外部,所有的函数很程序段都可以使用.外部变量可能会在某一程序段被重新定义,以段内变量为参考值.static extern 变量静态外部变量和外部变量差别在于,外部变量生命可以同时给多个文件使用,而静态外部变量则只能给声明此变量的文件使用.register 变量寄存器变量,是由寄存器分配空间,访问速度比访问内存快,加快执行速度.寄存器大小有限.在c语言当中可以使用寄存器变量来优化程序的性能,最常见的是在一个函数体当中,将一个常用的变量声明为寄存器变量: register int ra; 如果可能的话,编译器就会为它分配一个单独的寄存器,在整个函数执行期间对这个变量的操作全都是对这个寄存器进行操作,这时候就不用频繁地去访存了,自然就提高了性能。不能用于全局变量。现在的情况是VC忽略用户定义的REGISTER,因此定义一个REGISTER变量与不定义一个REGISTER是一样的,编译器进行相同的优化,因为MS认为,REGISTER是系统中宝贵的资源,应该由系统统一调配,而且认为VC编译器的优化能力要大于一般的程序员。因此也有人说register关键字在PC机(x86CPU)无用,编译器按自动变量处理。注意: register是不能取址的。register int j; int *p = &j;是错的,因为无法对寄存器的定址。2023-06-08 07:09:141
c++中外部变量的定义性申明和引用性申明?分别怎么用?
外部变量都是一个文件中的全局变量,定义性声明是指在一个文件中定义一个全局变量,而引用性声明是指:当该文件需要使用另一个文件中的某个变量时,则需要使用引用性声明这个另一个文件中的全局变量,告诉编译器,这个变量不是该文件中定义,而是在其他文件中定义的。2023-06-08 07:09:321
javascript怎么在回调函数内,修改外部变量?
如果要保障循环中的异步请求都返回时才进行下一步,请使用相应的流程管理工具。操作都是异步的,所以在获取value的填充内容的时候,值还没有填进去。需要一个异步同步化的模块,或者是成组异步执行完毕后回调的模块来辅助完成。2023-06-08 07:09:422
外变量的名词解释
外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。有时需要在其他文件中使用extern来声明全局变量,以扩展全局变量的作用域。 也可用static声明全局变量,使该变量不能被其他文件引用。在B语言、C语言和一些其它派生的语言(如C++)中,外部变量即外部的变量。这并不是语言规范中直接明确的概念,因此含义可能有歧义。扩展资料:在每个翻译单元中,标识符都必须先被声明。这个例子里,变量 GlobalVariable 在文件1中被声明,这个声明同时是定义。为了在文件2中使同一个标识符指称相同实体,它必须被声明具有外部链接。ISO C要求函数或对象的标识符若被使用则有且仅有一个外部定义,或未被使用时可以没有定义或具有一个定义,否则行为未定义。通常除非使用扩展(例如弱符号),实现(链接器)一般会有检查。ISO C++规定合式(well-formed)必须在符合语法规则、可诊断语义规则的同时遵守One Definition Rule,其中多个翻译单元内的同一个实体必须具有唯一定义,这包括具有外部链接的变量。不管有多少个翻译单元,定义在整个程序中有且仅有一个。2023-06-08 07:10:121
C语言中,全局变量和外部变量有什么区别?
全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。 有时需要在其他文件中使用extern来声明外部变量,以扩展外部变量的作用域。也可用static声明外部变量,使该变量不能被其他文件引用。有时候他们是一样的,只有稍微一点的区别而已,不用太过于区分的。2023-06-08 07:10:301
c语言:什么是外部变量
外部变量 是在 函数 外部定义的全局变量,它的 作用域 是从变量的定义处开始,到本 程序文件 的结尾。在此 作用域 内,全局变量可为各个 函数 所引用。编译时将 外部变量 分配在静态存储区。 有时要用extern来声明 外部变量 ,以扩展外部变量的 作用域 。 也可用static声明外部变量,使该变量不能被其他文件引用。 用extern声明外部变量 extern可省略不写。 本文件里:在一个文件里,有不止一个 函数 ,外部变量在第一个函数后面定义。若用extern在第一个函数前声明该变量则该变量可以在第一个函数中使用。 多个文件中:在其他文件中若想要用该文件中已声明的变量,则在文件头部声明该变量,即可在文件中使用。 用static声明外部变量 static声明后该外部变量就只能在本文件中使用。2023-06-08 07:10:371
c语言什么是外部变量是什么意思
1. 顾名思义,在任何函数外面声明的变量。2023-06-08 07:10:432
函数之外定义的变量是什么啊?
貌似是全局变量!2023-06-08 07:10:535
php的class中怎样引用外部的变量?
把$a放在下面,function name($string){global $a;}$a="xxfaxy";name("$a");这样就可以了。延展阅读:php的class中的外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。2023-06-08 07:11:101
c语言里什么叫外部结构变量?
C程序由一组对象组成,这些对象包括程序中所使用的变量和实现特定功能的函数。变量可以分为函数内部定义、使用的变量和函数外部定义的变量,通常情况下,把函数内部定义、使用的变量称为内部变量或局部变量,而将在函数外部定义的、供许多函数所使用的变量称为外部变量,一般情况下,也可以称为全局变量。外部结构变量就是定义为结构体的外部变量2023-06-08 07:11:161
php的class中怎样引用外部的变量?
把$a放在下面,function name($string){global $a;}$a="xxfaxy";name("$a");这样就可以了。延展阅读:php的class中的外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。2023-06-08 07:11:241
C语言中,全局变量和外部变量有什么区别
全局变量也称为外部变量,它是在函数外部定义的变量。 作用域不是整个源程序,是从定义处开始到程序结束。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。 有时需要在其他文件中使用extern来声明外部变量,以扩展外部变量的作用域。也可用static声明外部变量,使该变量不能被其他文件引用。有时候他们是一样的,只有稍微一点的区别而已,不用太过于区分的。2023-06-08 07:11:311
C语言中,全局变量和外部变量有什么区别!
全局变量的作用域是当前整个文件其他文件要使用它,应该用extern来声明它就变成了外部变量了。2023-06-08 07:11:526
C语言的意思Global
全局变量2023-06-08 07:12:093
函数之外定义的变量是什么啊?
函数之外定义的变量是外部变量。概念:外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。注意:有时需要在其他文件中使用extern来声明外部变量,以扩展外部变量的作用域。也可用static声明外部变量,使该变量不能被其他文件引用。static声明后该外部变量就只能在本文件中使用。2023-06-08 07:12:171
关于C语言中用extern声明外部变量的问题(回答的好的追加赏金)
第二个主函数里面有个MAX函数的声明,C语言中不允许函数嵌套,所以错误。2023-06-08 07:12:273
c语言 静态变量和寄存器变量可以定义外部变量吗?定义有什么条件
静态局部变量是为了再下一次进入其所属函数时,变量的值仍保持上一次的值.而main函数在程序的一次运行中只会运行一次,所以设置静态局部变量就没有意义了.2023-06-08 07:12:332
C语言中怎样申明变量?
任何一种编程语言都离不开变量,特别是数据处理型程序,变量的使用非常频繁,没有变量参与程序甚至无法编制,即使编制运行后的意义也不大。变量之所以重要,是因为变量是编程语言中数据的符号标识和载体。 C语言是一种应用广泛的善于实现控制的语言,变量在C语言中的应用更是灵活多变。那么变量究竟是什么呢?变量是内存或寄存器中用一个标识符命名的存储单元,可以用来存储一个特定类型的数据,并且数据的值在程序运行过程中可以进行修改。可见,变量首先是一个标识符或者名称,就像一个客房的编号一样,有了这个编号我们在交流中就可方便言表,否则,我们只可意会,那多不方便。为了方便,我们在给变量命名时,最好能符合大多数人的习惯,基本可以望名知义,便于交流和维护;其次,变量是唯一确定的对应内存若干存储单元或者某个寄存器。这些是编译器来保证的,用户一般不用费心。 程序员一旦定义了变量,那么,变量就至少可为我们提供两个信息:一是变量的地址,即就是,操作系统为变量在内存中分配的若干内存的首地址;二是变量的值,也就是,变量在内存中所分配的那些内存单元中所存放的数据。 由于程序的多样需要,我们对变量也有各种各样的要求,比如:变量的生命期,变量的初始状态,变量的有效区域,变量的开辟地和变量的开辟区域的大小等等;为了满足这些要求,C语言的发明者就设置了以下变量: 1、 不同数据类型的变量;如:char cHar, int iTimes, flaot faverage; 2、 全局变量或者叫全程变量; 3、 局部变量; 4、 静态变量: 静态全局变量和静态局部变量;关键词:static 5、 寄存器变量;关键词:register; 6、 外部变量: 关键词:extern; C语言中,变量在内存中开辟地的大小由数据类型决定的,由于PC机中规定一个地址单元存一个字节,不同的数据类型的变量,为其分配的地址单元数是不一样的。C语言中除几种基本的数据类型外用户还可以自己定义所需要的数据类型: 1、 bool型 sizeof(bool): 1 2、 char型: sizeof(char): 1 3、 short型: sizeof(short): 2 4、 int型: sizeof(int): 4 5、 long型: sizeof(long): 4 6、 float型: sizeof(float): 4 7、 double型: sizeof(double): 8 8、 自定义型:如: typedef struct tagMyData { char cHar; int iTimes; float faverage; }MyDatap; sizeof(MyDatap): 12 char szBuf[]="HELLO C&C++!"; sizeof(szBuf): 13 局部变量和全局变量是相对而言的;如下:局部变量 int itmp; int Get_Max( const int& x, const int& y, const int& z ) { int itmp; if(x > y) itmp = x; else itmp = y; if( itmp > z ) return itmp; else return z; } 在函数内部说明的变量为局部变量,只有在函数执行时,局部变量才存在,当函数执行完退出后,局部变量随之消失。也就是,当函数执行完退出后,原先在函数内定义的变量现在不能用,这通常由编译器保证,它会阻止编译通过。也就是说,原来为那个局部变量分配的内存,现在已经不属于它,它再无权访问了。如要再使用这些内存单元就必须从新定义变量来申请,只有分配给的变量才可访问它。否则,就会出错,如数组越界访问。 与局部变量不同,全局变量在整个程序都是可见的,可在整个程序运行过程中,对于任何一个程序都是可用的。全局变量的说明的位置在所有函数之外,但可被任何一个函数使用,读取或者写入。如下:全局变量 int iCount, bool bForward; int iCount; //全局变量; bool bForward; //全局变量; void add( void ); void dec( void ); void man(void ) { while( iCount < 1000 && iCount > -1000) { add( ); dec( ); printf("COUNT:%d; ", iCount) } } void add( void ) { if( bForward ) iCount++; } void dec( void ) { if(!bForward ) iCount--; } 可见,全局变量非常方便不同函数间数据共享,同样,任何函数在在使用数据时,都不敢保证数据是否已被修改。如果程序员无法保证这个,就尽量避免使用全局变量。 静态变量是分配在存储器中C程序所占据的数据段内, C程序运行的整个过程中一直保留,不会被别的变量占用。静态变量可以定义成全局变量或局部变量,当定义为全局变量时,在它定义的程序的整个运行期间均存在并且保持原来的存储单元位置不会改变。那么既然有了全局变量为什么还要定义全局静态变量呢?看下边的示例:2023-06-08 07:12:401
求助关于C语言外部变量声明
二维数组的声明不能两个长度都缺省,第一个可以,第二个必须有常数值2023-06-08 07:12:472