[英]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.