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

标签 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 element is not a compile-time constant

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

最佳答案

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

const int myInt = 55;

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

我无法回答 Objective C。

关于c++ - 在头文件中声明和初始化常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11194095/

相关文章:

c++ - 这里的 const 修饰符不是不必要的吗?

c++ - 在 C++ 中将指针变量作为指向不同类型的指针进行访问

c++ - 具有模板参数enable_if的C++ friend 功能

ios - 嵌入编程 UIView 的自动布局 XIB 未根据父级调整大小

ios - 为什么我可以在我的案例中访问单元测试类中的私有(private)方法

ios - 在 IOS 应用程序中实现我的想法的合理方法是什么?

c++ - GetFileAttributesA 为现有目录返回 "17"。 "16"表示它是一个目录,文档中没有提到 "17"

c++ - const lambda 是什么意思?

c++ - 转换 vector 的数据类型

C++ 在指向结构的指针中设置数组