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

Pat*_*ini 14 c++ constants objective-c header-files compile-time-constant

我精通典型的范例:

//.h
extern const int myInt;

//.c, .m, .cpp, what have you
const int myInt = 55;
Run Code Online (Sandbox Code Playgroud)

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

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

static NSString *const myString = @"my_string";
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用时myString,我得到了错误

Initializer元素不是编译时常量

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

CB *_*ley 18

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

const int myInt = 55;
Run Code Online (Sandbox Code Playgroud)

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

我无法回答目标C.