2431202505 发表于 2014-3-28 22:17:20

头文件定义变量

为什么不能在头文件定义变量啊,别的文件包含进的话为什么会出现多次定义

青玄 发表于 2014-3-28 22:17:21

头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现 ,什么样的内容适合放在头文件里?对于具有外部存储类型的标识符,可以在其他任何一个源程序文件中经声明后引用,因此用户完全可以将一些具有外部存储类型的标识符的声明放在一个头文件中。具体地说,头文件中可以包括:用户构造的数据类型(如枚举类型),外部变量,外部函数、常量和内联函数等具有一定通用性或常用的量。而一般性的变量和函数定义不宜放在头文件中。例如:#include<stdio.h>中的头文件stdio.h作用是让链接器通过头文件里的函数申明找到函数实际代码所在的位置即所在的库文件,这样才能使用该函数的实际代码,函数的实际代码的实现过程是先让链接器通过头文件里函数的申明找到函数实际代码所在的位置即所在的库文件,再通过#include语句把链接器所找到的函数实际代码用链接器把函数的实际代码链接到当前文件即所要执行的程序中。当然有些函数的使用不需要提供头文件,但是在ISO/ANSI C已经对有些函数的使用必须提供哪些头文件制定了标准。

飞驰吧!少年 发表于 2014-3-28 23:17:59

头文件又不是用来定义变量的,http://baike.baidu.com/view/668911.htm,百度百科,头文件的作用

牡丹花下死做鬼 发表于 2014-3-29 10:58:53

←_← 头文件是干嘛的? 你居然用来定义变量

CS007 发表于 2014-3-29 12:54:23

,,,,,,,,,,

隐袭战龙 发表于 2014-3-29 13:52:13

你可以在头文件里这样写:
extern int i;
这样就不会说重复定义了

Last_D 发表于 2014-3-30 11:26:46

先说你那个回答只有一个鱼币,我就心寒了,
作为刚入门的我来回答下吧(未经实践,至我逝去的C/C++)
可以用这个宏定义#ifndef XX_H
#define XX_H
static int O = 100;
//……
#endif

2431202505 发表于 2014-3-30 15:52:45

有些人没有帮我解决到我提问的问题,不好意思啊,但是为什么会说是多次定义是怎么回事呢,上面那个我先说下已经用到了宏定义,大师还是被重复定义,这个是什么情况呢

2431202505 发表于 2014-3-31 18:12:22

我还有个问题为什么头文件的变量变成static后就不会被重复定义啊
页: [1]
查看完整版本: 头文件定义变量