这是结构声明代码。
struct list_el {
int val;
struct list_el * next;
};
typedef struct list_el item;
当我编写这样的函数时,编译器会出错。它说cur undeclared before first use
。
bool delete(item* item)
{
assert(item != NULL);
item* cur = NULL;
cur = head;
item* prev = NULL;
while (cur) {
if (cur == item) {
if (prev == NULL) {
head = item->next;
} else {
prev->next = item->next;
}
free(item);
return true;
}
prev = cur;
cur = cur->next;
}
return false;
}
typedef
在我查阅参考资料后,它说的结果有点像#define
. 它只是在编译时进行替换。这是无法编译代码的原因吗?