可有人识得此误↓
.c文件代码如下
int user_list_del(FRND_ST* fs, short cnt)
{
CLIENT_FRND* cp;
struct list_head* pos = NULL, * head = &myself.w_flisthd;
for (int i = 0; i < cnt; i++)
{
list_for_each(pos,head);
{
cp = (CLIENT_FRND*)list_entry(pos, CLIENT_FRND, c_node);
if (cp->c_id == fs[i].fs_id)
{
break;
}
}
if (pos == head)
{
continue;
}
cp = (CLIENT_FRND*)list_entry(pos, CLIENT_FRND, c_node);
list_del(&(cp->c_node));
free(cp);
}
return 0;
}
.h文件代码如下
#define offsetof(t,m) ((size_t)(&((t *)0)->m))
#define container_of (ptr, type, member)\
(char *)(ptr) - offsetof(type, member)
#define list_entry(ptr, type, member) \
container_of(ptr, type, member)
#define container_of (ptr, type, member)
(char *)(ptr) - offsetof(type, member)
这里的ptr是什么东西?是变量吗?宏定义里不能这么用变量啊兄弟