same static variable in different files
嗨,我欢迎大家回答这个问题。Q1)如果文件1.c包含静态int a;文件2.c包含静态int a;
如果这两个文件是同一项目的一部分。
如果是这样,编译会抛出任何错误吗?为什么?如果它不会抛出任何错误,为什么?正如我们用同样的……?
q2)静态变量x;在prog1.c中声明,我们如何使用prog2.c中x的值?
告诉我另一种方法,不通过prog1.c中全局声明的函数返回值发送值
注意:有人告诉我关于get和set函数,我们如何使用它来获取静态var值….是否有其他方法来获取该值?
"static"关键字的关键是它意味着变量(或函数)只在定义它的文件中可用。所以这两个变量是完全独立的。因此,没有错误,也不可能从另一个文件访问其中一个。
嗯,事实上这是一个面试问题,我告诉他删除静态变量之前,他说我只想访问我文件中的静态变量,告诉我如何获取这个值?
我告诉他全局声明一个函数并返回静态变量,因为函数只通过调用那个函数返回值,我们可以得到这个值?他说一些获取和设置函数用法,而不是从函数返回。我不知道的事情…
我甚至意识到,如果我们想打破静态的规则,将VaR定义为静态的意义是什么。或许这个问题很愚蠢…或者有一种访问私有变量的方法….
如果是这样,编译会抛出任何错误吗?为什么?如果它不会抛出任何错误,为什么?正如我们用同样的……?
不不。它有针对特定文件的范围,在该文件中,它声明了由于
q2)静态变量x;在prog1.c中声明,我们如何使用prog2.c中x的值?
由于
编辑:
你说我如何从一个文件访问静态变量。但是这样做,
通过糟糕的编码方式,您可以使用类似的函数访问。
1 2 3 4 5 6 | static int myvar; int * accesssaticvar() { return &myvar; } |