c - 初始化元素不是常量,试图定义变量的默认值 - C

标签 c element initializer

尝试定义某些变量的默认值。例如:

static int persist_previousTemp = 1;
static int persist_previousTempDefault = 2;

static int persist_previousIcon = 1;
static int persist_previousIconDefault = 2;

//Define variables for persistent storage of weather, not persistent
static int previousTemp = persist_previousTempDefault;
static int previousIcon = persist_previousIconDefault;

这样做是为了卵石开发,如果这有什么不同的话,但我不相信它有什么不同。

是的,我尝试过搜索,以前的解决方案(例如在函数中定义)只会引发更多错误。

谢谢!

最佳答案

您必须使用常量表达式初始化全局变量,变量不起作用。如果您想使用相同的值初始化多个变量,则使用 #defines 是理想的:

#define PREV_TEMP_DEFAULT 2

static int previous_temp = PREV_TEMP_DEFAULT;
static int some_other_global = PREV_TEMP_DEFAULT + 2; /* constant expressions are ok */

关于c - 初始化元素不是常量,试图定义变量的默认值 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22467994/

相关文章:

c - 在C中绘制多边形

css - 悬停元素高度

c++ - 将一个 vector 的每个元素与另一个 vector 的元素进行比较

objective-c - Objective-C 中的静态初始值设定项

c - 随机改变结构数组的值

c - 在指向数组的指针中使用类型转换

c - Dll代码到C源代码

javascript - 子级继承父级所有属性的方式

ios - 如何实现符合Mappable的NSManagedObject类

java - 非静态初始化 block 如何调用?