c++ - C 和 C++ 中的静态变量

标签 c++ c static global-variables

在 C 和 C++ 之间的任何函数之外声明为 static 的变量之间有什么区别。我读到 static 表示文件范围,并且在文件之外无法访问变量。我还读到在 C 中,全局变量是 static 。那么这是否意味着不能在另一个文件中访问 C 中的全局变量?

最佳答案

不,在这方面 C 和 C++ 没有区别。

阅读 this SO answer关于 static 在 C 程序中的含义。在 C++ 中,对于类变量(而不是实例变量)使用 static 还有一些其他含义。

关于全局变量是 static - 仅从内存分配的角度来看(它们是在数据段上分配的,就像所有全局变量一样)。从可见性的角度来看:

static int var;    // can't be seen from outside files
int var;           // can be seen from outside files (no 'static')

关于c++ - C 和 C++ 中的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2528457/

相关文章:

c++ - 使用动态大小时,二维 vector 中的 push_back() 会出错

c++ - 如何在不知道套接字的情况下获取本地端口

c - 多线程时recvfrom()返回错误10022(C)

java - 静态 ConcurrentHashMap 副本中的值对象是否会引用与原始值对象相同的值对象?

java - 一个实用程序类应该只包含一种方法吗?

c++ - 返回链表C++中总数据的函数

c++ - 单击“打印”按钮后,Qt 打印对话框重新出现

c - 使用 malloc 动态分配字符串

c - 具有 OpenSSL 的 BN 的二次扩展字段(或复数)?

java - 为什么需要一个对象来引用静态方法内的类成员?