鱼C论坛

 找回密码
 立即注册
查看: 2147|回复: 8

头文件定义变量

[复制链接]
发表于 2014-3-28 22:17:20 | 显示全部楼层 |阅读模式
1鱼币
为什么不能在头文件定义变量啊,别的文件包含进的话为什么会出现多次定义

最佳答案

查看完整内容

头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现 ,什么样的内容适合放在头文件里?对于具有外部存储类型的标识符,可以在其他任何一个源程序文件中经声明后引用,因此用户完全可以将一些具有外部存储类型的标识符的声明放在一个头文件中。具体地说,头文件中可以包括:用户构造的数据类型(如枚举类型),外部变量,外部函数、常量和内联函数等具有一定通用性或常用的 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

发表于 2014-3-28 23:17:59 | 显示全部楼层
头文件又不是用来定义变量的,http://baike.baidu.com/view/668911.htm,百度百科,头文件的作用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-29 10:58:53 | 显示全部楼层
←_← 头文件是干嘛的? 你居然用来定义变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-29 12:54:23 | 显示全部楼层
,,,,,,,,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-29 13:52:13 | 显示全部楼层
你可以在头文件里这样写:
extern int i;
这样就不会说重复定义了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-30 11:26:46 | 显示全部楼层
先说你那个回答只有一个鱼币,我就心寒了,
作为刚入门的我来回答下吧(未经实践,至我逝去的C/C++)
可以用这个宏定义
#ifndef XX_H
#define XX_H
static int O = 100;
//……
#endif
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-30 15:52:45 | 显示全部楼层
有些人没有帮我解决到我提问的问题,不好意思啊,但是为什么会说是多次定义是怎么回事呢,上面那个我先说下已经用到了宏定义,大师还是被重复定义,这个是什么情况呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-31 18:12:22 | 显示全部楼层
我还有个问题为什么头文件的变量变成static后就不会被重复定义啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 00:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表