求大神 为什么小弟我这个链表编译器报错

求大神 为什么我这个链表编译器报错
#include <stdio.h>
#include <stdlib.h>
struct cl *clb()
{
struct cl *startp,*newp,*endp;
int n;
startp = NULL;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
newp=(struct cl*)malloc(sizeof(struct cl));
newp->data = i;
newp->next = NULL;
if(srartp ==NULL) startp=newp;
else endp->next =newp;
endp=newp;

}
endp->next =startp;
return(startp);
}
------解决思路----------------------
你定义struct cl了吗?
还有提问编译器报错的时候,希望你把编译器报错的内容贴出来,这样方便找错误。