c++ - static 在这里的目的是什么?

标签 c++ c static

GNU's getopt_long example , static 用于在文件范围内定义的标志:

/* Flag set by ‘--verbose’. */
static int verbose_flag;

并且在 while 循环 block 作用域中定义的 long_options 结构中:

static struct option long_options[]

这里是不是使用了static,让其他文件无法访问变量? static 在这两种情况下是否以相同的方式使用,它在结构中是否更有效,因为它保存在内存的相同位置并且没有重新初始化?

最佳答案

如果 static 用于文件范围内的变量,则意味着它是该文件的本地变量。如果没有该关键字,您可以通过 extern 关键字在另一个文件中使用它。

这同样适用于函数。如果 C 中的函数在文件中是静态的,则它只能在该文件中使用,而不能在其他文件中使用。

所以是的,我想这是为了防止在其他文件中使用它。

关于c++ - static 在这里的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36443111/

相关文章:

c - 如何正确打印 JPEG 文件的字节? - CS50 PSET3 恢复

来自静态类的 Java 引用

c++ - 在进行阻塞调用之前,线程无法使用外部变量...

c - 将 float 组传递给 (void*) 函数参数

c++ - 删除 C++ 类(valgrind 检查)

c - 在 C 中查找 short int 变量的最大值

java - Java 中静态抽象方法的替代方案

c# - C# 中的静态构造函数

c++ - 从空整数到逗号列表中的指针的转换

c++ - 在右值对象上调用 getter 方法时获取右值