![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C语言中如何定义全局变量
11个回答
展开全部
函数和变量都有声明和定义两个写法。声明的目的是告诉别的代码这个变量的名称,而定义比声明多了一个功能,除了告知名称以外,还会为这个变量分配内存。
对于函数来说,加不加extern都没有关系,因为有函数体一定是定义,加extern也会被忽略,而没有函数体的就是声明,
int add(int a, int b); 等价于 extern int add(int a, int b);
int add(int a, int b) { return a + b; } 等价于 extern int add(int a, int b) {return a+b;}
如果是变量的话
int a; // 定义了一个变量a
extern int a; // 声明了一个变量a
变量可以有任意个声明,但是只能有一个定义,全局变量定义在多个文件中,只能有一个文件中的不加extern,其余的都必须加extern表示声明。
对于函数来说,加不加extern都没有关系,因为有函数体一定是定义,加extern也会被忽略,而没有函数体的就是声明,
int add(int a, int b); 等价于 extern int add(int a, int b);
int add(int a, int b) { return a + b; } 等价于 extern int add(int a, int b) {return a+b;}
如果是变量的话
int a; // 定义了一个变量a
extern int a; // 声明了一个变量a
变量可以有任意个声明,但是只能有一个定义,全局变量定义在多个文件中,只能有一个文件中的不加extern,其余的都必须加extern表示声明。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全局常量定义,在主函数体外部直接调用预处理命令#define 常量名 量值
引用时可以再任意函数体内直接调用该常量名
全局变量定义,变量不存在全局概念,只有相对概念。你可以通过声明作用域来进行声明。比如:
std::a。这就是一种。
引用时可以再任意函数体内直接调用该常量名
全局变量定义,变量不存在全局概念,只有相对概念。你可以通过声明作用域来进行声明。比如:
std::a。这就是一种。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JavaScript声明全局变量三种方式的异同
JavaScript中声明变量格式:var(关键字)+变量名(标识符)。
方式1
var test;
var test = 5;
需注意的是该句不能包含在function内,否则是局部变量。这是第一种方式声明全局变量。
方式2
test = 5;
没有使用var,直接给标识符test赋值,这样会隐式的声明了全局变量test。即使该语句是在一个function内,当该function被执行后test变成了全局变量。
方式3
window.test;
window.test = 5;
这种方式经常被用到一个匿名函数执行后将一些函数公开到全局。 如JQuery1.5中最末一句
window.jQuery = window.$ = jQuery;
JavaScript中声明变量格式:var(关键字)+变量名(标识符)。
方式1
var test;
var test = 5;
需注意的是该句不能包含在function内,否则是局部变量。这是第一种方式声明全局变量。
方式2
test = 5;
没有使用var,直接给标识符test赋值,这样会隐式的声明了全局变量test。即使该语句是在一个function内,当该function被执行后test变成了全局变量。
方式3
window.test;
window.test = 5;
这种方式经常被用到一个匿名函数执行后将一些函数公开到全局。 如JQuery1.5中最末一句
window.jQuery = window.$ = jQuery;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果全局变量在同一个C文件中,则可以直接去使用这个全局变量,就像楼上(zsx10110)举的那个例子一样,但是在另外一个C 文件中还想继续使用这个变量的时候就需要使用extern来声明引用这个全局变量了,比如说你把全局变量定义声明在a.c文件中的,你在b.c文件中也想使用,则在里面加上这句extern int a;(int a是你在a.c中定义的,视实际情况而定)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全局区只能写声明/定义语句,不能写表达式。q=(struct time*)malloc(sizeof(struct time))这是一个表达式,必须放到函数内部。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询