C语言中如何定义全局变量

 我来答
早早起床的宝
2015-04-22 · TA获得超过177个赞
知道答主
回答量:248
采纳率:0%
帮助的人:109万
展开全部
函数和变量都有声明和定义两个写法。声明的目的是告诉别的代码这个变量的名称,而定义比声明多了一个功能,除了告知名称以外,还会为这个变量分配内存。
对于函数来说,加不加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表示声明。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫月居士
2012-05-16 · TA获得超过416个赞
知道小有建树答主
回答量:256
采纳率:0%
帮助的人:144万
展开全部
全局常量定义,在主函数体外部直接调用预处理命令#define 常量名 量值
引用时可以再任意函数体内直接调用该常量名
全局变量定义,变量不存在全局概念,只有相对概念。你可以通过声明作用域来进行声明。比如:
std::a。这就是一种。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天顺祥白事
2016-05-31 · TA获得超过1741个赞
知道大有可为答主
回答量:2126
采纳率:93%
帮助的人:1279万
展开全部
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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友88f8348
2012-05-16 · TA获得超过402个赞
知道小有建树答主
回答量:256
采纳率:50%
帮助的人:235万
展开全部
如果全局变量在同一个C文件中,则可以直接去使用这个全局变量,就像楼上(zsx10110)举的那个例子一样,但是在另外一个C 文件中还想继续使用这个变量的时候就需要使用extern来声明引用这个全局变量了,比如说你把全局变量定义声明在a.c文件中的,你在b.c文件中也想使用,则在里面加上这句extern int a;(int a是你在a.c中定义的,视实际情况而定)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GTA小鸡
高粉答主

2018-06-19 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.2亿
展开全部
全局区只能写声明/定义语句,不能写表达式。q=(struct time*)malloc(sizeof(struct time))这是一个表达式,必须放到函数内部。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式