工程包含a.c b.c
在a.c文件里有一个全局变量 list
b.c里有一个全局变量 test
问:1、若b.c里的函数要改变a.c 里全局变量的值,可否直接在b.c 里extern list 然后直接调函数修改?
2、a.c 调用b.c里的函数test_change(test)修改test的值
然后a.c再调用b.c里的函数test_show(test)显示test的值,这里的test值是前面test_change修改的值吗?我的意思是,b.c里的全局变量保存在哪里?不需要return给a.c也能保存值吗?
å¨Cè¯è¨ä¸å¼ç¨å¤é¨åéï¼ä¸è¬ä½¿ç¨externå
³é®åã举个ä¾åå¦ä¸ï¼
说æï¼å¨2.cä¸å¦æä¸ä½¿ç¨externå ³é®åï¼åä¼åºç°ç¼è¯é误æ示ãåå ¥extern int g_a声æåï¼åç¼è¯æåã
参考资料:http://blog.csdn.net/rwjlqn/archive/2010/01/21/5219655.aspx
c语言工程里其它文件引用全局变量?
在C语言中引用外部变量,一般使用extern关键字。举个例子如下:\/\/1.c 中定义一个变量g_aint g_a = 100;\/\/2.c 中定义一个函数输出g_a#include <stdio.h>extern int g_a; \/\/这里需要用extern说明g_a是一个外部全局变量void f() { printf("%d\\n", g_a);}\/\/3.c main函数中调用f...
怎样使C语言全局变量在多个文件中使用?
extern 关键字\\x0d\\x0aextern int i;这样就可以在其他文件中使用\\x0d\\x0a在头文件中声明\\x0d\\x0aa.h\\x0d\\x0aextern int i;\\x0d\\x0a在其他某个c文件中定义\\x0d\\x0aint i =0;\\x0d\\x0a其他要使用i变量的c源文件只需要include"a.h"就可以 ...
在C语言中,一个文件中定义的 全局变量,在另一个文件中能用吗
能。因为全局变量默认是extern的,函数也是。如果你写了static修饰它就不行了
c语言 为什么静态全局变量可以在别的文件中引用
静态全局变量只能在本源文件中使用,意思是你不能用extern 来声明另外一个文件里的静态全局变量 比如 A文件里的static int i =0;那么B文件里extren int i就是行不通的,而如果A文件的i不是static的 , 那么extern int i就可以
单片机Keil C51 C语言多文件如何使用全局位变量?跪拜!!
extern就可以。在一个文件里定义:bdata m;sbit x=m^1;然后在另一个文件里声明:extern bdata m;(如果不使用m可以不声明。)extern bit x;这样就可以使用了。如果变量较多,建议楼上的方法,用全局头文件。
c语言 中 为什么不将全局变量的定义放在头文件中
首先要说明什么是全局变量,c语言中全局变量一般是指定义在函数体外的变量。全局变量按可访问性可分为外部变量和内部变量。内部变量是指使用了static关键字修饰的全局变量,它的可访问范围(作用域)被限定在本源文件所在的链接文件模块中,不能被其它文件模块引用。反之没有被static关键字修饰的全局变量则是...
C语言 static全局变量只被初始化一次 防止在其他源文件中被引用 这句...
c文件之间是可以相互引用的,就像函数一样可以被相互引用。当 变量被 static 修饰的时候( 例如:static int a = 1;),只有文件第一次执行这个语句的时候 a 被赋值成 1,当其他的文件或本文件第二次执行这个语句的时候不改变 a 的值(例如:如果a在后面的代码中 加1,那么这时候执行这条语句时...
C语言如何在两个文件中访问同一个全局变量
最好的实践是:建立一个头文件, 在头文件中声明变量 extern <type> ;表示在外部链接该变量.变量则可以在任意源文件中定义.
C语言中某一个文件里定义的static变量,那么另一个文件能否读取这个变 ...
(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。(c)具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;静态全局变量的作用:(a)不必担心...
C语言中全局变量可以是非静态变量吗
在C语言中,全局变量可以是非静态变量的。原因如下:静态变量的关键static对局部变量和全局变量的作用不一样。对于局部变量来说,用static修饰时,该变量在函数调用后的值一直保持上次的结果。对于全局变量来说,用static修饰的全局变量表示这个全局变量只能在当前这个全局变量定义的文件内使用;如果没有static...