关于变量作用域的提问

造句大全 2008-07-28 09:56:21
请问:在c/c++中,在.h文件中定义的变量,比如
int a;
char b;
struct dd
{
int a;
int b;
.....
}
把这样的文件include到.c文件中,它是属于全局变量还是什么变量,它的作用域是什么??

谢谢!!
...全文
103 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kadyssss 2008-07-28
  • 打赏
  • 举报
回复
基本同上
lunarfan 2008-07-28
  • 打赏
  • 举报
回复
首先变量定义不应放在头文件里,2、你那个结构不是定义并没有分配内存。
aozhi 2008-07-28
  • 打赏
  • 举报
回复
6楼的观点我同意。
在源文件里做定义,在头文件里做声明。
很专业!
aozhi 2008-07-28
  • 打赏
  • 举报
回复
lz的代码也没有写全。如果这段声明放在一个类里。那恐怕就不是全局的了吧?
lzr4304061988012 2008-07-28
  • 打赏
  • 举报
回复
全局变量,
一般是在源文件里这样定义,在头文件中用EXTERN声明,其他文件INCLUDE该头文件时,就不会出现重复定义的 错误!
aozhi 2008-07-28
  • 打赏
  • 举报
回复
声明:只是告诉编译器后面的代码要使用这个变量了。
定义:为这个变量分配内存空间。
二者概念有本质的区别。
  • 打赏
  • 举报
回复
全局,文件作用域
个人观点
lala_benben 2008-07-28
  • 打赏
  • 举报
回复
对于。C文件中的函数,它们是全局变量, 另外
struct dd
{
int a;
int b;
.....
}
只是声明,不是定义变量
aozhi 2008-07-28
  • 打赏
  • 举报
回复
dd只是声明,没有定义。
lz先搞清基本概念再问吧。
xkyx_cn 2008-07-28
  • 打赏
  • 举报
回复
默认是全局变量,即extern链接类型的

你这样把变量定义写在头文件里,如果有2个或以上的源文件包含了该头文件就会出现重定义的错误

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧