Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在头文件中声明并初始化常量_C++_Objective C_Constants_Header Files_Compile Time Constant - Fatal编程技术网

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

C++ 在头文件中声明并初始化常量,c++,objective-c,constants,header-files,compile-time-constant,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时,会出现

我精通以下典型范例:

//.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
时,会出现错误

初始值设定项元素不是编译时常量


myString
上,表示未正确实例化它。如何在C++或ObjeCIT-C头文件中声明编译时常数?C++中的

< P> >代码> const < /Cord>对象有内部链接,除非明确声明“代码> ExtNe<代码>,所以将定义放入头文件中是没有问题的,例如:

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


我不能回答目标C.P/P,所以这是C还是C++?你可以用C++中的运行时表达式初始化全局变量,但在C.中不好的是,它知道C将不可能更新标签。@ Vorac:这在G++中是有效的(假设你实际上是编译C++源代码)。你的编辑让我浪费时间重新验证一些已经正确的东西,这使得这个答案在内部不一致。为什么我要对示例说“
const
对象具有内部链接”,然后说显式的
static
?如果你对某事不确定,那么评论;不要编辑。我已回滚您的编辑。