gpt4 book ai didi

c - 在 C 中重新定义枚举/全局枚举值

转载 作者:行者123 更新时间:2023-11-30 17:14:31 26 4
gpt4 key购买 nike

在我问的上一个问题中,我发现出于某种原因我必须使用枚举来在以下源代码中定义我的值:

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

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

//Decide what to do
switch(key) {
case key_0:
enum {key0_buffer = value};
break;
};
}
...
static WeatherAppDataPoint s_data_points[] =
{
{
...
.high = key0_buffer,
},
};

在此代码中,旨在在 Pebble Watch(云 pebble.com)上运行,值来自在手机上运行的单独 JS 应用程序,然后接收该值。但是,正如此处所示,我想将该整数转换为枚举器(原因如下: initializer element not constant? )。代码出现以下错误:

    ../src/app_data.c:120:5: error: a label can only be part of a statement and a declaration is not a statement
../src/app_data.c:120:11: error: enumerator value for 'key0_buffer' is not an integer constant
../src/app_data.c:109:9: error: variable 'value' set but not used [-Werror=unused-but-set-variable]

如何将整数转换为枚举数?

最佳答案

您的代码显示了对 C 工作原理的一些基本误解。例如,开关盒中的枚举根本没有意义。枚举在编译时声明值,而开关在运行时用于控制流。

您应该找到一本 C 语言初学者书籍,并从一些基本示例开始。

关于c - 在 C 中重新定义枚举/全局枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30277736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com