初始化元素不是常数?

时间:2015-05-11 00:19:52

标签: c pebble-sdk

我对C相对了解,并且只是学习它来发布Pebble C / PebbleKitJS应用程序来跟踪公共汽车。到目前为止,我已经在节点服务器上处理数据,并且我正准备将数据由JS文件处理。然而,我的一个问题在于C代码。

此代码处理存储在从JS发送的密钥字典中的数据,并将其分配给变量以供下面使用。通过使用#define var 9,我可以成功地将.high值设置为9.但是通过int var,它会失败并抛出错误:初始化元素不是常量? 。

这个错误意味着什么,如果我没有定义它,静态和常量之间究竟有什么区别。显然静态变量不返回任何东西?一些帮助将非常感激。

更新:问题仍然没有解决。除初始化程序之外,还会出现以下新错误消息。 error: (near initialization for 's_data_points[0].high')

   int key0_buffer; 


  void process_tuple(Tuple *t)
{
    //Get key
    int key = t->key;

    //Get integer value, if present
     int value = t->value->int32;

    //Get string value, if present
    char string_value[32];
    strcpy(string_value, t->value->cstring);

    //Decide what to do
    switch(key) {
        case key_0:
            //Location received
            key0_buffer = value;
            break;
  }



  }

static WeatherAppDataPoint s_data_points[] = {

  {
 .city = "San Diego",
     .description = "surfboard :)",
        .icon = WEATHER_APP_ICON_GENERIC_WEATHER,
        .current = 110,
        .high = key0_buffer,
        .low = 9,
  },   
};

0 个答案:

没有答案