关于在C++文件中声明的变量,但不在头文件中声明的变量。

问题描述 投票:0回答:1

如果我在C++文件中制作了一个静态全局变量,但没有在头文件中声明它,当我从这些文件中制作一个库时,我是否能够访问它(变量)?

c++ static header global
1个回答
2
投票

假设这个变量是独立的,并且是在文件范围内定义的(它不是一个变量的一部分),那么当我从这些文件中制作一个库时,我是否可以访问它(变量)? class 以某种方式),并且关键字 static 的定义,那么这个变量将在定义它的文件中被访问。 它将无法从任何其他文件中通过名字来访问--这也是 static. 文件中对它有访问权的函数可以通过返回一个指向变量的指针或引用来使它在文件外被访问。

考虑把变量放在匿名命名空间中,而不是让它成为静态变量;在C语言中,静态变量的使用是必要的,但在现代C++中却没有必要。


0
投票

不,你将无法访问该变量。

全局静态变量是 内联 意味着即使在该翻译单元(文件)之外也无法访问它们。所以你甚至无法在库内访问它。

© www.soinside.com 2019 - 2024. All rights reserved.