结构定义中带有指针的枚举
Enums with pointers in struct definitions
我正在使用 ctypes 模块在 python 中创建对动态库的访问。在我的 python 实现中复制一些 tydef 结构时,我遇到了一些代码,这些代码让我对正在发生的事情感到困惑。基本上我有的是
enum foo {
a,
b,
c,
};
typedef struct barStruct bar;
struct barStruct{
enum foo (*lem)();
enum foo (*baz)(bar *next);
}
在头文件中。
我试图理解结构定义中的两个枚举调用。我认为第一个是创建一个名为 lem
的指针,它必须指向枚举中包含的值(所以我基本上忽略了末尾的 open/close 括号)。当我注意到第二个,括号中有另一个指针时,我对发生的事情感到非常困惑,并且怀疑我对第一个含义的猜测。
如果这个问题已经有了答案(我确信它有),我深表歉意,但不幸的是,我想不出如何有效地搜索我需要的东西。
那些不是 "enum calls",那些在结构中声明两个成员,成员是指向函数的指针。
例如
enum foo (*lem)();
声明了一个结构成员变量lem
,它是一个指向参数数量不确定的函数的指针,并且returns一个foo
枚举。
我正在使用 ctypes 模块在 python 中创建对动态库的访问。在我的 python 实现中复制一些 tydef 结构时,我遇到了一些代码,这些代码让我对正在发生的事情感到困惑。基本上我有的是
enum foo {
a,
b,
c,
};
typedef struct barStruct bar;
struct barStruct{
enum foo (*lem)();
enum foo (*baz)(bar *next);
}
在头文件中。
我试图理解结构定义中的两个枚举调用。我认为第一个是创建一个名为 lem
的指针,它必须指向枚举中包含的值(所以我基本上忽略了末尾的 open/close 括号)。当我注意到第二个,括号中有另一个指针时,我对发生的事情感到非常困惑,并且怀疑我对第一个含义的猜测。
如果这个问题已经有了答案(我确信它有),我深表歉意,但不幸的是,我想不出如何有效地搜索我需要的东西。
那些不是 "enum calls",那些在结构中声明两个成员,成员是指向函数的指针。
例如
enum foo (*lem)();
声明了一个结构成员变量lem
,它是一个指向参数数量不确定的函数的指针,并且returns一个foo
枚举。