[英]C++: Declaring non-global variables in header?
在下面的代码中,y在func()中使用。 在按照惯例和/或优化方面编译代码时,是否需要在头文件中声明y? 如果是这样,我是否可以阻止y出现在每个包含标头的文件中?
//func.h
#ifndef FUNC_H
#define FUNC_H
int func(const int x);
#endif // FUNC_H
//
//func.cpp
const int y = 5;
int func(const int x)
{
return x + y;
}
//
不,如果y
仅在func.cpp中使用,则无需(从约定或性能方面)在头文件中声明它。 你的东西对我来说很好。
常量隐式具有内部链接,因此只能在func.cpp内部访问。
您可以考虑使其成为constexpr
。
如果y
仅在使用func()
你可以考虑宣布它里面func()
我认为假设全局变量会表现更好是过早的优化。
一种选择
在头文件中有声明
extern const int y;
在一个源文件中定义变量
const int y =5;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.