已经宣言的变量却显示为声明

已经声明的变量却显示为声明
TreeNode *decl()
{
  typespecifier();
  TreeNode * t = varlist();//运行时发生错误 错误为 t是未声明的标识符,可是这里不是声明了么
                                  varlist()返回一个TreeNode 类型的指针
  match(SEMI);
  TreeNode * q = declarations();
  if(t != NULL)
     t->sibling = q;
  return t;
}
------解决方案--------------------
运行时这三个字不要随便用,建议贴全部代码
------解决方案--------------------
#include "TreeNode.h"
------解决方案--------------------
你把TreeNode节点的代码copy到现在这个文件中试试
------解决方案--------------------
先看看这断代码报错吗

struct TreeNode;
TreeNode *temp_temp_temp()

TreeNode * t;
return t;
}

------解决方案--------------------
引用:
复制过来也没用  , 那个会报错,因为t没被初始化
t的初始化,不是调用了 varlist()么?
你这个 varlist()的返回值是什么,贴一下看看
------解决方案--------------------
把你的 TreeNode 结构体,贴出来。