在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/