社区
C++ 语言
帖子详情
在C++中,static型的变量的定义是否应该放在头文件中?
xinxiakk
2005-09-15 08:41:00
在C++中,static型的变量的定义是否应该放在头文件中?并且头文件中除了能放const,inline外,一般还放一些什么?如果static能放在头文件中的话,那么被2个不同的cpp文件分别引入时,不是造成了static变量的2个映象?
...全文
1387
14
打赏
收藏
在C++中,static型的变量的定义是否应该放在头文件中?
在C++中,static型的变量的定义是否应该放在头文件中?并且头文件中除了能放const,inline外,一般还放一些什么?如果static能放在头文件中的话,那么被2个不同的cpp文件分别引入时,不是造成了static变量的2个映象?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MagicCarmack
2005-09-16
打赏
举报
回复
学习。。。。。。。。。。。。。。
husl
2005-09-16
打赏
举报
回复
不会的
void fun()
{
static int a = 0;
cout << "a is" << ++a <<endl;
}
int main()
{
fun();
fun();
return 0;
}
输出的 1 ,2 是预期结果
按离调用了两次fun 应有两分拷贝 但事实不是
头文件那种你也可以试一下
应该 具体到static的实现机制吧
SammyLan
2005-09-16
打赏
举报
回复
static变量的声明或者定义放在头文件是死罪一条
(=_=)
fiftymetre
2005-09-16
打赏
举报
回复
C++里的全局static变量没有什么意义的,不用加static
全局变量放在头文件里比较好,我们的项目就是这么做的
gnixemos
2005-09-16
打赏
举报
回复
在头文件中,一般是变量的声明,就是extern 类型 变量名;
在cpp文件中,是变量的定义 ,static 变量类型 变量名 = 0 ;
放在头文件中,所有include 这个头文件的cpp 都能用到这个变量;
如果static直接放在cpp中,不放在.h中,则只能在这个cpp中static变量定义后能被引用到;
类中的static变量也是随类的声明一样放在.h中。定义在cpp中。
基本和楼上意见一致;
zhouhuahai
2005-09-16
打赏
举报
回复
C++里的全局static变量没有什么意义的,不用加static
非也非也, static变量是有文件作用域的, 在a.c中定义的,就不能在b.c或者其它文件中用了.
至于static变量, 如果要把它的声明放进.h文件, 则它就不应该是一个static变量了, static变量一般是放在.cpp或.c文件中,且声明和定义在一起.
有一个特例: 类中的static成员变量, 一般声明在.h, 定义在.cpp.
counter_windows
2005-09-16
打赏
举报
回复
我认为,static int g_value 能使其他文件不能访问,致使extern失效. 是本文件的所特有。 防止篡改,降低耦合。
K
2005-09-15
打赏
举报
回复
.h文件中放声明,上面写错了
K
2005-09-15
打赏
举报
回复
.h文件中放定义
.c文件中放实现
viewpl
2005-09-15
打赏
举报
回复
如果static放在头文件中的话,被2个不同的cpp文件分别引入时,那么这两个cpp都有一个自己的这个static变量,并且相互不受影响,你可以这么做,但这可能多数不是你想要的。
xinxiakk
2005-09-15
打赏
举报
回复
mingming_lu(初来乍到)
static 和extern是一对反义词
static 是局部的,extern是全局的
过来解释一下
超级管理员9527
2005-09-15
打赏
举报
回复
比如:在test.c文件中定义变量static int global = 0;
******
可以在头文件test.h中声明这个变量为:extern int global;
******
要使用这个变量的其他文件,只要包含test.h就可以了。
//楼上回来重新讲讲-_-
逍遥过客
2005-09-15
打赏
举报
回复
变量的定义一般不放在头文件里,但可以把声明放在头文件里,供其他文件引用这个变量。
比如:在test.c文件中定义变量static int global = 0;
可以在头文件test.h中声明这个变量为:extern int global;
要使用这个变量的其他文件,只要包含test.h就可以了。
doway
2005-09-15
打赏
举报
回复
变量都不可以放入头文件里。
这回我没讲错吧。
C++
头文件
中
定义
static
/const
本文深入探讨
C++
中
全局
变量
的多种
定义
方法,对比
static
、const和extern的使用场景,解析常量折叠原理,给出最佳实践建议。
C/
C++
:
头文件
与cpp文件的声明/
定义
本文详细解析了
C++
中
头文件
与cpp文件的使用规范,包括各类内容的声明与
定义
规则,如类、函数、
变量
及const常量等,强调了
static
、const、inline的作用与区别。
c++
中
在
头文件
中
定义
static
变量
本文探讨了在
头文件
中
定义
static
变量
后被多个cpp文件包含时的行为。通过实例演示了每个cpp文件实际上拥有独立的同名
变量
,这些
变量
仅在各自的cpp文件
中
有效。
C++
在
头文件
中
定义
const
变量
或
static
变量
本文探讨了在
C++
头文件
中
直接
定义
const或
static
变量
的潜在问题,包括重复
定义
和内存浪费,并提供了一种更优的实践方法——在源文件
中
定义
并在
头文件
中
声明。
c/
c++
头文件
里
定义
或声明
变量
、函数、命名空间和类遇到的问题
头文件
在
C++
编程
中
主要负责声明函数、
变量
和类,避免重复
定义
导致的编译错误。正确的做法是将
变量
、命名空间和函数的声明放入
头文件
,
定义
则
放在
对应的cpp文件
中
。例外情况包括const对象和
static
对象的
定义
、内联函数以及类的
定义
可以
放在
头文件
中
。内联函数和类
定义
由于其特殊性,可以在
头文件
中
多次出现而不违反规则。
C++ 语言
65,211
社区成员
250,515
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章