| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5397 人关注过本帖
标题:全局变量怎么写到头文件里?
只看楼主 加入收藏
Sun_DN
Rank: 1
来 自:NEU
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-4-5
收藏
 问题点数:0 回复次数:14 
全局变量怎么写到头文件里?
翻了一下谭浩强的教材,说头文件可以包括全局变量,我试了一下,但是不成功。标准的头文件里都没有变量定义这一块,只有一些条件汇编、宏定义、函数原型声明什么的。谁能指教一二,不胜感激!
搜索更多相关主题的帖子: 全局变量 谭浩强 文件 定义 教材 
2008-07-29 17:49
crabeam
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-6-17
收藏
得分:0 
我只知道:

在头文件中不能有变量定义,而应使用声明。
2008-07-29 17:56
崔园园
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2008-4-21
收藏
得分:0 
头文件中可以进行全局变量的定义
2008-07-29 18:30
崔园园
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2008-4-21
收藏
得分:0 
头文件中可以进行全局变量的定义
2008-07-29 18:46
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
头文件当然可以定义全局变量,语法上没有问题。

但肯定只有新手会这么干。
2008-07-29 20:21
lingluoz
Rank: 2
来 自:苏州科技学院
等 级:新手上路
威 望:4
帖 子:749
专家分:0
注 册:2008-2-2
收藏
得分:0 
在頭文件里面加上int i;就定義了一個全局變量i了啊
但是一般的做法都是先在一個.c文件里面加上一句
int i;
然后再頭文件里面加上一句
entern int i;
然后連接在一起這樣就行了啊:)

Murphy's Law :
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
2008-07-30 09:02
Sun_DN
Rank: 1
来 自:NEU
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-4-5
收藏
得分:0 
纸上谈兵
我觉得你们说得都不对,我试过了,在头文件里定义或声明变量都不行。对于6楼的说法,不对,既然已经放在头文件里,就不用外部声明了。因为文件包含在预编译的时候就把这些变量的定义什么直接复制插入程序的前面,在同一个文件里不用外部声明。因为我处理的这个程序非常大,全局变量很多,我才想把他们做成一个头文件。至于你们的热情,我非常感谢,可惜我需要的是对这方面有实际经验的人给我一些指点,显然,你们都只会纸上谈兵,尤其是5楼。

[[it] 本帖最后由 Sun_DN 于 2008-7-30 10:20 编辑 [/it]]

人不己知,而不愠,不亦君子乎?
2008-07-30 10:11
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
人不知,而不愠,不亦君子乎?

--------------------------------------------------------------
解决方法:
1.在一个.c文件中统一定义所需全局变量,例如:
/*
*   foo.c  global variable definition
*/
int  _a;
double _b;
char _c;
2.在一个.h文件中统一声明所有的全局变量。例如:
/*
*   foo.h  global variable declaration
*/
#ifndef _FOO_H_
#define _FOO_H_
extern int  _a;
extern double _b;
extern char _c;
#endif

3.要使用这些全局变量时将头文件foo.h包含进来:
#include " foo.h"

[[it] 本帖最后由 VxWorks 于 2008-7-30 10:28 编辑 [/it]]

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-07-30 10:27
Sun_DN
Rank: 1
来 自:NEU
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-4-5
收藏
得分:0 
非常感谢,我试试

人不己知,而不愠,不亦君子乎?
2008-07-30 10:35
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
你自己有没有搞错。

我说的新手的做法:(非常非常不推荐)
//file: headfile.h
int a;

//file: mainfile.c
#include<stdio.h>
#include"headfile.h"
int main(void)
{
   a=a*2;
   printf("%d\n",a);
   return 0;
}

难道会不行???

非新手的做法,参照8#
2008-07-30 10:48
快速回复:全局变量怎么写到头文件里?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024652 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved