我对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,
},
};