c – 在头文件中声明和初始化常量

我精通典型的典范:

//.h
extern const int myInt;

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

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

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

static NSString *const myString = @"my_string";

但是,当我尝试使用myString时,我会收到错误

Initializer element is not a compile-time constant

在myString上,表示它没有正确实例化.如何在C或Objecitve-C头文件中声明编译时常数?

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

const int myInt = 55;

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

我不能答复Objective C.

翻译自:https://stackoverflow.com/questions/11194095/declare-and-initialize-constant-in-header-file

转载注明原文:c – 在头文件中声明和初始化常量