[英]goto produces an error "bypassing initialization"
我正在嘗試在我的項目中使用標簽,但是當我使用 goto 跳過一組指令以將控制權轉移到代碼的另一部分時,我收到此錯誤消息: transfer control bypasses initialization of (certain variables) 。
這是產生錯誤的代碼:
goto label1;
label00:
int a = 0;//the compiler can't let me skip this line
int b; // but this line is fine to skip over
b = 0; //because i initialize it here instead of doing it like the a variable
label1:
//other instructions
如您所見,我初始化了兩個變量,但其中一個是定義然后初始化的,而另一個是在同一行定義和初始化的。
在同一行變量 a中定義和初始化的一個在跳過時不會產生錯誤,但另一個會產生錯誤。
我正在使用 VS2019 編譯此代碼。 我認為這根本不應該引發錯誤,編譯器應該給你一個警告,這樣你就知道你在a 和 b 初始化時都跳過了一些東西。
是否有任何解決方案,例如禁用設置中的某些內容?
我不想聲明我的變量然后在使用標簽時初始化它們。
我認為這根本不應該引發錯誤
編譯器可以自由拒絕編譯格式錯誤的程序。
有什么解決辦法嗎
解決方案:
a
.a
。a
。goto
(我最喜歡的)。a
的 scope。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.