我在我的 .h 中定义了一个全局变量,其他类通过包含类“.h”文件来访问该变量。这很好用,根据我收到的建议,我现在已经将变量移动到“.m”,因为我被告知,否则每个包含 .h 的类都将重新声明它,这是正确的吗?但是现在我的其他文件无法访问它,并且我假设我不应该包含“.m”文件....我应该使用#define 预处理器,所以它只定义一次吗?我该怎么做呢?
问问题
2624 次
3 回答
6
.h
您可以在文件中声明变量。
全局变量.h:
extern int myGlob;
您不能在 a 中定义变量.h
,您必须在 a.c
或 中定义它.m
:
全局变量.m:
int myGlob;
globals.h
您可以从需要访问的任何其他文件导入myGlob
:
我的应用程序.m:
#import "globals.h"
main() {
myGlob++;
}
于 2012-06-13T07:51:10.147 回答
2
您可以在 .h 中使用#define number 123
or #define string @"abc"
,并且任何导入它的文件都应该能够使用您选择的预处理器名称。k 是这些类型宏的通用前缀,因为它们实际上是常量值。
注意:注释表明使用您定义的预处理器和实际的全局变量(声明了 extern)之间存在差异,尽管两者都可以通过导入您声明/定义它们的 .h 文件在单独的文件中使用。
于 2012-06-13T06:28:51.317 回答
-1
静态变量只声明一次
于 2012-06-13T07:45:00.810 回答