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,我得到了错误

Initializer 元素不是编译时常量

on myString,表示它没有被正确实例化。如何在 C++ 或 Objecitve-C 头文件中声明编译时常量?

4

1 回答 1

19

在 C++ 中,const除非显式声明,否则对象具有内部链接extern,因此将定义放入头文件中没有问题,例如:

const int myInt = 55;

有了这个定义和第一个声明,myInt可以用作整数常量表达式,例如用于数组边界等。

我无法回答 Objective C。

于 2012-06-25T17:55:39.843 回答