【问题标题】:Initializer element is not constant trying to define defaults for variables- C初始化器元素不是常量,试图为变量定义默认值 - C
【发布时间】:2014-04-23 11:06:17
【问题描述】:

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

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;

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

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

谢谢!

【问题讨论】:

    标签: c element initializer


    【解决方案1】:

    你必须用常量表达式初始化全局变量,变量不起作用。如果要使用相同的值初始化多个变量,使用 #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 */
    

    【讨论】:

      猜你喜欢
      • 2015-07-21
      • 1970-01-01
      • 2013-01-17
      • 2014-05-25
      • 2010-09-13
      • 1970-01-01
      • 2011-03-02
      相关资源
      最近更新 更多