所以A是在其他地方定义的结构。您可以忽略此处定义变量的顺序。 在这里,当我使用'B'来定义一个新变量时,到底发生了什么?它是创建一个指向类型为A的结构体的指针变量吗?当遇到'typedef struct A *B;'时,尽可能详细地解释发生了什么。谢谢。
typedef struct A *B;
typedef struct {
B pd_ctx;
} C;
static inline B convert (B handle)
{
C *ctx;
ctx = (C *)handle;
return (ctx->pd_ctx);
}
A
和C
是不相关的类型。从指向A
的指针转换为指向C
的指针最好谨慎处理。 - WhozCraig