【发布时间】:2012-11-02 16:39:03
【问题描述】:
这是结构声明代码。
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。它只是在编译时进行替换。这就是代码无法编译的原因吗?
【问题讨论】:
-
typedef不像#define那样工作。哪个参考文献这么说的?