社区
C++ Builder
帖子详情
奇怪,"E2126 Case bypasses initialization of a local variable"是什么意思啊?
rocsoar
2001-06-29 03:42:58
错误出现在switch与case选择的时候,case 1没错, case2和 case 3的时候就报错了,为什么呢?
...全文
1426
9
打赏
收藏
奇怪,"E2126 Case bypasses initialization of a local variable"是什么意思啊?
错误出现在switch与case选择的时候,case 1没错, case2和 case 3的时候就报错了,为什么呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
孩皮妞野
2001-06-29
打赏
举报
回复
没有这样的规定。
不过C++中对跳转语句跳过临时变量有一些限制, 具体我也不是太了解。
所以要不然你不用跳转, 要不然把它声明在 前面。
{
int i;
if(i)goto aaa;
int j=5;
aaa:
}
上面不行, 下面可以:
{
int i,j;
if(i)goto aaa;
j=5;
aaa:
}
rocsoar
2001-06-29
打赏
举报
回复
谢谢ALING和TR了,就是变量应该在switch外赋值,这是固定的规定吗?我怎么没看到过?
孩皮妞野
2001-06-29
打赏
举报
回复
改成这样,你看有没有少点什么功能:
{
AnsiString S =Edit1->Text;
if(S.IsEmpty())
{
MessageBoxA(NULL,"请输入!",NULL,MB_OK);
return;
}
AnsiString Page(WebPage.SearchPage);
AnsiString Parm=AnsiString("/")
switch(x)
{
case 1:
Parm += WebPage.SearchJsp;
break;
case 2:
Parm += WebPage.ReplaceJsp;
break;
case 3:
Parm += WebPage.ListJsp;
break;
}
ExecIE(Handle,Page.c_str());
}
//---------------------------------------------------------------------------
孩皮妞野
2001-06-29
打赏
举报
回复
改成这样,你看有没有少点什么功能:
{
AnsiString S =Edit1->Text;
if(S.IsEmpty())
{
MessageBoxA(NULL,"请输入!",NULL,MB_OK);
}
AnsiString Page(WebPage.SearchPage);
AnsiString Parm=AnsiString("/")
switch(x)
{
case 1:
Parm += WebPage.SearchJsp;
break;
case 2:
Parm += WebPage.ReplaceJsp;
break;
case 3:
Parm += WebPage.ListJsp;
break;
}
ExecIE(Handle,Page.c_str());
}
//---------------------------------------------------------------------------
rocsoar
2001-06-29
打赏
举报
回复
okok.
谢谢两位,源码如下:
int x;
void __fastcall TfrmEStock::Button1Click(TObject *Sender)
{
x=1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmEStock::Button2Click(TObject *Sender)
{
x=2;
}
//---------------------------------------------------------------------------
void __fastcall TfrmEStock::Button3Click(TObject *Sender)
{
x=3;
}
//---------------------------------------------------------------------------
void __fastcall TfrmEStock::Edit1KeyDown(TObject *Sender,
WORD &Key, TShiftState Shift)
{
switch(x)
{
case 1:
AnsiString S =Edit1->Text;
if(S!= "")
{
AnsiString Page(WebPage.SearchPage);
AnsiString Parm=AnsiString("/")+AnsiString(WebPage.SearchJsp);
ExecIE(Handle,Page.c_str());
}
else
{
MessageBoxA(NULL,"请输入!",NULL,MB_OK);
}
break;
case 2:
AnsiString s =Edit1->Text;
if(s != "")
{
AnsiString Page(WebPage.SearchPage);
AnsiString Parm=AnsiString("/")+AnsiString(WebPage.ReplaceJsp);
ExecIE(Handle,Page.c_str());
}
else
{
MessageBoxA(NULL,"请输入!",NULL,MB_OK);
}
break;
case 3:
AnsiString s =Edit1->Text;
if(s != "")
{
AnsiString Page(WebPage.SearchPage);
AnsiString Parm=AnsiString("/")+AnsiString(WebPage.ListJsp);
ExecIE(Handle,Page.c_str());
}
else
{
MessageBoxA(NULL,"请输入!",NULL,MB_OK);
}
break;
}
}
TR@SOE
2001-06-29
打赏
举报
回复
你在switch...case的case处理段中试图声明只对该case段有效的变量,这是不允许的(不要问我为什么,我也不知道)。
你应该将这些变量在switch...case段之外声明。
BCB
2001-06-29
打赏
举报
回复
也遇到过
孩皮妞野
2001-06-29
打赏
举报
回复
比如:
.....
if(x) goto aaa;
int i = 5;
...
aaa:
会产生:
[C++ Error] Unit1.cpp(38): E2203 Goto bypasses initialization of a local variable
这两种错误大体相似。
孩皮妞野
2001-06-29
打赏
举报
回复
这是一个编译错误吧, 要调整一下你的代码, 你还是把:
switch(...){....}部分贴出来看一看吧。
华擎h310cm-itx主板上QNTM(
e2126
g es)CPU BIOS,编程器刷入
华擎h310cm-itx主板上志强QNTM(
e2126
g es)CPU BIOS
BCB 6的问题
20080128 遇到了Linker error,解决的办法居然是把Debug方式改成Release方式,编译通过之后再改回Debug方式,再编译,然后就OK了。 20080131 [C++ Error] main.cpp(888):
E2126
Case
bypa
sse
s
initialization
of a
local
variable
原因是在switch...
case
......
signature=418c49b7d9d9d211e8a740fd82eb8f74,MS12-041: Vulnerabilities in Windows Kernel-Mode Drivers ...
Publisher FilenameSha1SHA2windows6.1-kb2709162-ia64.msu99C7697130F4B3F4D8603C614343A27F5CBA7467A2CC626317E0F84B73A0C2E5C7DC76ABAB7E379FCBB32CD05B66706CC9F2A74Fwindow
sse
rver2003-kb2709162-x86-enu.exe2D...
Hive之——启动问题及解决方案
问题1: Caused by: javax.jdo.JDODataStoreException: Required table missing : "`VERSION`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your M
UglifyJs无法压缩vendor.js: ERROR in static/js/vendor.xxx.js from UglifyJs
报错信息:ERROR in static/js/vendor.9d86f97577080abdf83d.js from UglifyJs Unexpected token: name ($vm) [./~/_vue-preview@1.0.5@vue-preview/src/plugins/preview/index.js:2,0][static/js/vendor.9d86f97577080abd
C++ Builder
13,822
社区成员
102,680
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章