15

私は次の典型的なパラダイムに精通しています。

//.h
extern const int myInt;

//.c, .m, .cpp, what have you
const int myInt = 55;

.hしかし、実装ファイルにアクセスできないライブラリやその他のインスタンスで使用するために、それをファイルに入れる方法が必要です。

たとえば、次のようにXcodeプロジェクトNSStringのファイルに定数を追加しようとしています。.h

static NSString *const myString = @"my_string";

ただし、を使用しようとするmyStringと、エラーが発生します

イニシャライザ要素はコンパイル時定数ではありません

onmyStringは、適切にインスタンス化されていないことを示します。C ++またはObjecitve-Cヘッダーファイルでコンパイル時定数をどのように宣言しますか?

4

1 に答える 1

19

C ++では、const明示的に宣言されていない限り、オブジェクトには内部リンケージexternがあるため、次のようなヘッダーファイルに定義を入れることに問題はありません。

const int myInt = 55;

この定義と最初の宣言により、myInt配列の境界などの整数定数式として使用できます。

ObjectiveCには答えられません。

于 2012-06-25T17:55:39.843 に答える