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

时间:2014-03-18 00:14:04

标签: 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;

如果这有任何不同,可以用于卵石开发,但我不相信它。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

#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 */