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

hhhhhhio110 2012-12-08 03:16:06
TreeNode *decl()
{
typespecifier();
TreeNode * t = varlist();//运行时发生错误 错误为 t是未声明的标识符,可是这里不是声明了么
varlist()返回一个TreeNode 类型的指针
match(SEMI);
TreeNode * q = declarations();
if(t != NULL)
t->sibling = q;
return t;
}
...全文
194 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Binzo 2012-12-08
  • 打赏
  • 举报
回复
把你的 TreeNode 结构体,贴出来。
hhhhhhio110 2012-12-08
  • 打赏
  • 举报
回复
不是 我是说楼上贴的那段代码 struct TreeNode; TreeNode *temp_temp_temp() { TreeNode * t; return t; } TreeNode * varlist() { TreeNode * t = NULL; TreeNode * p = NULL; TreeNode * q = NULL; if (token==ID) { t = newExpNode(IdK); t->kind.stmt = IntK; if(t != NULL) { t->attr.name = copyString(tokenString); match(ID); } while (1) { if(token == DH) { match(token); if (token==ID) { q = newExpNode(IdK); if(q != NULL) q->attr.name = copyString(tokenString); match(ID); } else { syntaxError("unexpected token -> "); printToken(token,tokenString); fprintf(listing," "); break; } } else if(token == SEMI) { match(token); break; } else { syntaxError("unexpected token -> "); printToken(token,tokenString); fprintf(listing," "); break; } if(q != NULL) { if(p != NULL) { p->sibling = q; p = q; } else { p = t; p->sibling = q; p = q; } } } } else { syntaxError("unexpected token -> "); printToken(token,tokenString); fprintf(listing," "); } return t; }
漫步者、 2012-12-08
  • 打赏
  • 举报
回复
引用 7 楼 hhhhhhio110 的回复:
复制过来也没用 , 那个会报错,因为t没被初始化
t的初始化,不是调用了 varlist()么? 你这个 varlist()的返回值是什么,贴一下看看
hhhhhhio110 2012-12-08
  • 打赏
  • 举报
回复
复制过来也没用 , 那个会报错,因为t没被初始化
yisikaipu 2012-12-08
  • 打赏
  • 举报
回复
先看看这断代码报错吗
struct TreeNode;
TreeNode *temp_temp_temp()
{ 
	TreeNode * t;
	return t;
}
derekrose 2012-12-08
  • 打赏
  • 举报
回复
你把TreeNode节点的代码copy到现在这个文件中试试
hhhhhhio110 2012-12-08
  • 打赏
  • 举报
回复
有包括了 不是头文件的问题 TreeNode是一个结构体 相关的头文件都已经包括了的
Binzo 2012-12-08
  • 打赏
  • 举报
回复
#include "TreeNode.h"
hhhhhhio110 2012-12-08
  • 打赏
  • 举报
回复
额 那说启动调试的时候 全部代码太多 不好贴
derekrose 2012-12-08
  • 打赏
  • 举报
回复
运行时这三个字不要随便用,建议贴全部代码

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧