如何更改#define 值
How to change #define value
我知道 #define
必须是恒定的,但请给我任何好的提示。
在我的例子中,我通过 #define
定义了一个常量值(例如 #define kImageQuality 0.7
)。
但是,我想在打开应用程序之前更改 Settings.Bundle
中的常量值。
这意味着改变常数值,不是吗?
有什么方法可以实现我的目标吗?
它应该改为实例变量而不是#define?
如果您提供任何提示,我们将不胜感激。
#define
常量甚至在编译开始之前就被预处理器替换了(例如,kImageQuality
在编译之前被 0.7
替换)。因此,在应用程序启动之前加载它是不可能的,因为应用程序不会每次都重新编译。您需要使用一个变量:
float imageQuality = 0.7f;
这是不可能的,因为:
#define constant 3
...
y = x + constant
是否完全相当于:
y = x + 3
#define
d 常量在代码编译之前的预处理阶段被替换为它们的值。要动态更改值,您必须使用全局变量或其他一些持久机制,如 NSUserDefaults
.
我知道 #define
必须是恒定的,但请给我任何好的提示。
在我的例子中,我通过 #define
定义了一个常量值(例如 #define kImageQuality 0.7
)。
但是,我想在打开应用程序之前更改 Settings.Bundle
中的常量值。
这意味着改变常数值,不是吗?
有什么方法可以实现我的目标吗?
它应该改为实例变量而不是#define? 如果您提供任何提示,我们将不胜感激。
#define
常量甚至在编译开始之前就被预处理器替换了(例如,kImageQuality
在编译之前被 0.7
替换)。因此,在应用程序启动之前加载它是不可能的,因为应用程序不会每次都重新编译。您需要使用一个变量:
float imageQuality = 0.7f;
这是不可能的,因为:
#define constant 3
...
y = x + constant
是否完全相当于:
y = x + 3
#define
d 常量在代码编译之前的预处理阶段被替换为它们的值。要动态更改值,您必须使用全局变量或其他一些持久机制,如 NSUserDefaults
.