如果这两个文件属于同一个项目。
如果是这样,编译会抛出任何错误吗? 如果它不会抛出任何错误为什么?正如我们宣布的那样..?
Q2)一个静态变量X;在prog1.c中声明如何在prog2.c中使用X的值
告诉我没有从prog1.c中全局声明的函数返回值的另一种方式
注意:有些人告诉我有关GET和SET函数的信息,我们如何使用它来获取静态var值..?有没有其他方法来访问该值。?答案 0 :(得分:2)
"静态"的全部意义。关键字是指变量(或函数)仅在定义它的文件中可用。所以这两个变量完全是分开的。因此没有错误,也没有可能从另一个文件中访问一个。
答案 1 :(得分:0)
编译会抛出任何错误,如果是这样的话为什么?如果它不会抛出任何错误为什么?正如我们宣布的那样..?
不,不。它具有由于static
存储类而声明的特定文件的范围。将static
用于全局变量和函数意味着它们只对该翻译单元可见。
Q2)一个静态变量X;在prog1.c中声明如何在prog2.c中使用X的值
由于static
,您无法再次对其进行外展。它在声明的源文件中是私有的。
修改强>
你说我如何从一个文件访问静态变量到另一个文件。但要这样做,static
关键字的含义是什么?采用这种最佳方法只需删除static
关键字。
通过糟糕的编码风格,您可以使用类似的函数进行访问。
static int myvar;
int * accesssaticvar() {
return &myvar;
}
答案 2 :(得分:0)
我告诉他全局声明一个函数并返回静态var,因为该函数只通过调用该函数返回值,我们可以得到值?他说一些GET和SET函数用法而不是从函数返回。我不知道的事情......
我甚至意识到,如果我们想破坏静态规则,将var定义为静态是什么意思。问题可能是愚蠢的......或者有办法访问私有变量....