请考虑以下代码.
enum type {CONS, ATOM, FUNC, LAMBDA};
typedef struct{
enum type type;
} object;
typedef struct {
enum type type;
object *car;
object *cdr;
} cons_object;
object *cons (object *first, object *second) {
cons_object *ptr = (cons_object *) malloc (sizeof (cons_object));
ptr->type = CONS;
ptr->car = first;
ptr->cdr = second;
return (object *) ptr;
}
Run Code Online (Sandbox Code Playgroud)
在cons
函数中,变量ptr
是类型cons_object*
.但是在返回值中它被转换为类型object*
.
cons_object
它object
是不同的结构.有什么想法吗!