0

重複の可能性:
Cocoa/Objective-C のグローバル変数?
目的 c でグローバル変数を宣言する際の問題

クラスの「.h」ファイルを含めることで、他のクラスがアクセスしていた.h内にグローバル変数を定義していました。これはうまくいきました。私が受け取ったアドバイスから、変数を「.m」に移動しました。そうしないと、.h を含むすべてのクラスがそれを再宣言することになると知らされたからです。これは正しいですか? しかし、今では他のファイルはアクセスできず、「.m」ファイルを含めることは想定されていないと思います.... #define プリプロセッサを使用する必要があるので、それは一度だけ定義されますか? どうすればいいですか?

4

3 に答える 3

6

ファイルで変数を宣言でき.hます。

globals.h:

extern int myGlob;

変数を で定義することはできません。または .hで定義する必要があります:.c.m

globals.m:

int myGlob;

globals.hアクセスする必要がある他のファイルからインポートできmyGlobます。

myApp.m:

#import "globals.h"

main() {
    myGlob++;
}
于 2012-06-13T07:51:10.147 に答える
2

#define number 123または.h 内で使用#define string @"abc"でき、それをインポートするファイルは、選択したプリプロセッサ名を使用できるはずです。k は、実際には定数値であるため、これらのタイプのマクロの一般的な接頭辞です。

注:コメントは、定義したプリプロセッサと実際のグローバル変数 (extern が宣言されている) の使用には違いがあることを示していますが、宣言/定義した .h ファイルをインポートすることで、両方を別々のファイルで使用できます。

于 2012-06-13T06:28:51.317 に答える
-1

静的変数は一度だけ宣言されます

于 2012-06-13T07:45:00.810 に答える