久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2947|回復: 16
收起左側

求教:C語言這樣編程可以嗎?

  [復制鏈接]
ID:610895 發(fā)表于 2019-9-12 21:19 來自觸屏版 | 顯示全部樓層 |閱讀模式
單片機開機顯示函數(shù)最后一句是while(1);想要繼續(xù)執(zhí)行按鍵程序,可以這樣編寫嗎?
while(1){
                       if(k1==0)//kn是獨立按鍵
                       goto loop1
                       else if(k2==0)
                       goto loop2
                               ……
                        

回復

使用道具 舉報

ID:94031 發(fā)表于 2019-9-13 09:17 | 顯示全部樓層
goto loop1改成函數(shù)直接調用不行嗎?xxxx();
回復

使用道具 舉報

ID:282850 發(fā)表于 2019-9-13 09:57 | 顯示全部樓層
goto似乎用起來很方便,但實際上不好用,所以goto是不建議C中使用的。從你的不確定,也說明自己不好把控goto。
C可以自信地說,不需要goto,不管按鍵,其它任何復雜的功能都能實現(xiàn)。
回復

使用道具 舉報

ID:47286 發(fā)表于 2019-9-13 11:12 | 顯示全部樓層
f556 發(fā)表于 2019-9-13 09:57
goto似乎用起來很方便,但實際上不好用,所以goto是不建議C中使用的。從你的不確定,也說明自己不好把控got ...

搭車問下 看好多地方都說盡量不用goto 它哪不好啊
回復

使用道具 舉報

ID:155507 發(fā)表于 2019-9-13 23:05 | 顯示全部樓層
因為老手經過寫很多代碼發(fā)現(xiàn),同一個程序隨著goto語句的使用次數(shù)增多,它的邏輯就會成指數(shù)上升,人腦是看不懂它的邏輯,哪怕前一秒是自己寫的,后一秒就不知它跑哪去了。當然你在一個程序用一個兩個還是可以的(別聽書上瞎說,其實我認為你偶爾做書上不建議的事也許會有意想不到的收獲),挺方便的(但注意,要自己控制goto數(shù)量,多了你會后悔的)。

回復

使用道具 舉報

ID:610895 發(fā)表于 2019-9-14 07:02 來自觸屏版 | 顯示全部樓層
f556 發(fā)表于 2019-9-13 09:57
goto似乎用起來很方便,但實際上不好用,所以goto是不建議C中使用的。從你的不確定,也說明自己不好把控got ...

是,程序按現(xiàn)在的想法編寫至少有11個goto語句,所以有點怕出錯。其實我主要問的是while(1);這個死循環(huán)這么改行不行?
回復

使用道具 舉報

ID:155507 發(fā)表于 2019-9-14 08:39 | 顯示全部樓層
GOTO語句使程序的靜態(tài)結構和動態(tài)結構不一致,從而使程序難以理解,難以查錯。

有人認為GOTO語句使用起來比較靈活,而且有些情形能提高程序的效率。
1974年,D·E·克努斯對于GOTO語句爭論作了全面公正的評述,其基本觀點是:不加限制地使用GOTO語句,特別是使用往回跳的GOTO語句,會使程序結構難于理解,在這種情形,應盡量避免使用GOTO語句。但在另外一些情況下,為了提高程序的效率,同時又不至于破壞程序的良好結構,有控制地使用一些GOTO語句也是必要的。用他的話來說就是:“在有些情形,我主張刪掉GOTO語句;在另外一些情形,則主張引進GOTO語句。”
后來,G·加科皮尼和C·波姆從理論上證明了:任何程序都可以用順序、分支和重復結構表示出來。這個結論表明,從高級程序語言中去掉GOTO語句并不影響高級程序語言的編程能力,而且編寫的程序的結構更加清晰。
goto語句的結果:在C/C++等高級編程語言中保留了goto語句,但被建議不用或少用。在一些更新的高級編程語言,如Java不提供goto語句,它雖然指定goto作為關鍵字,但不支持它的使 用,使程序簡潔易讀;盡管如此后來的c#還是支持goto語句的,goto語句一個好處就是可以保證程序存在唯一的出口,避免了過于龐大的if嵌套。
可以考慮使用goto的情形:
1.從多重循環(huán)中直接跳出 ;
2. 出錯時清除資源; 
3.可增加程序的清晰度的情況。

不加限制地使用goto:破壞了清晰的程序結構,使程序的可讀性變差,甚至成為不可維護的"面條代碼"。經常帶來錯誤或隱患,比如它可能跳過了某些對象的構造、變量的初始化、重要的計算等語句。
goto語句問題的提出直接推動了結構化程序設計(structured programming)的思想和程序設計方法學的誕生和發(fā)展。結構化程序設計方法引入了工程思想和結構化思想,使大型軟件的開發(fā)和編程都得到了極大的改善。結構化程序設計方法的主要原則可以概括為自頂向下,逐步求精,模塊化,限制使用goto語句。

下列關于使用goto語句的原則可以供讀者參考。   
1) 使用goto語句只能goto到同一函數(shù)內,而不能從一個函數(shù)里goto到另外一個函數(shù)里。   
2)使用goto語句在同一函數(shù)內進行goto時,goto的起點應是函數(shù)內一段小功能的結束處,goto的目的label處應是函數(shù)內另外一段小功能的開始處。   
3)不能從一段復雜的執(zhí)行狀態(tài)中的位置goto到另外一個位置,比如,從多重嵌套的循環(huán)判斷中跳出去就是不允許的。   
4)應該避免像兩個方向跳轉。這樣最容易導致"面條代碼"。

回復

使用道具 舉報

ID:155507 發(fā)表于 2019-9-14 13:07 | 顯示全部樓層
夜遇 發(fā)表于 2019-9-14 07:02
是,程序按現(xiàn)在的想法編寫至少有11個goto語句,所以有點怕出錯。其實我主要問的是while(1);這個死循環(huán) ...

簡單的回答是不行,使用goto語句只能goto到同一函數(shù)內,而不能從一個函數(shù)里goto到另外一個函數(shù)里。
回復

使用道具 舉報

ID:462827 發(fā)表于 2019-9-14 23:23 | 顯示全部樓層
盡量不用goto,你想要的功能也照樣能寫出來。
回復

使用道具 舉報

ID:123289 發(fā)表于 2019-9-15 10:26 | 顯示全部樓層
事物有其兩面性,如果GOTO一無是處就沒有存在的價值了。
回復

使用道具 舉報

ID:600906 發(fā)表于 2019-9-15 11:18 | 顯示全部樓層
不建議用goto語句,可以改為函數(shù)調用,這樣是代碼更加高效化
回復

使用道具 舉報

ID:592807 發(fā)表于 2019-9-15 17:49 | 顯示全部樓層
dzbj 發(fā)表于 2019-9-13 11:12
搭車問下 看好多地方都說盡量不用goto 它哪不好啊

容易發(fā)生一些變量未定義的錯誤或者重復定義胡錯誤,如下a未定義
goto  a1;
int a=1;
a1:
a++;
回復

使用道具 舉報

ID:611768 發(fā)表于 2019-9-15 19:51 | 顯示全部樓層
goto在運行過程當中可能不是很穩(wěn)定,建議不要用goto吧
回復

使用道具 舉報

ID:383084 發(fā)表于 2019-9-15 20:12 | 顯示全部樓層
使用起來是沒什么問題,但可以把goto換成要執(zhí)行的函數(shù)啊,goto使用多了程序的執(zhí)行不好把控
回復

使用道具 舉報

ID:519162 發(fā)表于 2019-9-15 20:33 | 顯示全部樓層
盡量別用GOTO這個
回復

使用道具 舉報

ID:611801 發(fā)表于 2019-9-15 21:02 | 顯示全部樓層
強烈建議不要用goto,C語言goto其實差點被刪掉了...除非C用了很長時間了,否則不要這個語句...你這個肯定可以用函數(shù)調用的方式寫,比這個更易懂
回復

使用道具 舉報

ID:611890 發(fā)表于 2019-9-16 09:28 | 顯示全部樓層
我覺得可以這樣寫,但是要加一個else return ;這樣可以避免因為沒有考慮全某種情況而造成死循環(huán)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 福利视频一区二区三区 | 日韩欧美国产一区二区三区 | 欧美日韩在线观看视频 | 国产999精品久久久久久 | 免费一区二区三区 | 99re6在线视频精品免费 | aaa在线| 日韩一区在线观看视频 | 日韩在线精品 | 日韩一二区| 国产精品久久在线观看 | 亚洲国产精久久久久久久 | 国产一区二区三区在线 | 欧美日韩久| 国产午夜精品一区二区三区 | 亚洲成人综合社区 | 亚洲一区二区三区在线免费观看 | 日韩高清一区 | 久久久91| 天天操天天干天天曰 | 国产97在线 | 日韩 | 欧美国产精品 | 一色一黄视频 | 国产一区二区激情视频 | 国产91在线视频 | 91免费看片| 久久久久一区二区三区四区 | www.久久久久久久久久久久 | 毛片免费在线 | 91成人免费 | 国产精产国品一二三产区视频 | xx性欧美肥妇精品久久久久久 | 久久久精品网站 | 亚洲成人毛片 | 99视频在线播放 | 一区二区免费在线观看 | 日韩在线免费视频 | 日韩欧美在线免费 | 一区中文字幕 | 免费精品 | 久久免费精品 |