在头文件中声明并初始化常量

时间:2012-06-25 17:18:05

标签: c++ objective-c constants header-files compile-time-constant

我精通典型的范例:

//.h
extern const int myInt;

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

但是必须有一种方法将它放入.h文件中,以便与库或其他无法访问实现文件的实例一起使用。

例如,我正在尝试将NSString常量添加到Xcode项目中的.h文件中,如下所示:

static NSString *const myString = @"my_string";

然而,当我尝试使用myString时,我收到错误

  

Initializer元素不是编译时常量

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

1 个答案:

答案 0 :(得分:18)

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

const int myInt = 55;

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

我无法回答目标C.