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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2819|回復: 16
打印 上一主題 下一主題
收起左側

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

  [復制鏈接]
跳轉到指定樓層
樓主
ID:610895 發表于 2019-9-12 21:19 來自手機 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機開機顯示函數最后一句是while(1);想要繼續執行按鍵程序,可以這樣編寫嗎?
while(1){
                       if(k1==0)//kn是獨立按鍵
                       goto loop1
                       else if(k2==0)
                       goto loop2
                               ……
                        

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94031 發表于 2019-9-13 09:17 | 只看該作者
goto loop1改成函數直接調用不行嗎?xxxx();
回復

使用道具 舉報

板凳
ID:282850 發表于 2019-9-13 09:57 | 只看該作者
goto似乎用起來很方便,但實際上不好用,所以goto是不建議C中使用的。從你的不確定,也說明自己不好把控goto。
C可以自信地說,不需要goto,不管按鍵,其它任何復雜的功能都能實現。
回復

使用道具 舉報

地板
ID:47286 發表于 2019-9-13 11:12 | 只看該作者
f556 發表于 2019-9-13 09:57
goto似乎用起來很方便,但實際上不好用,所以goto是不建議C中使用的。從你的不確定,也說明自己不好把控got ...

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

使用道具 舉報

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

回復

使用道具 舉報

6#
ID:610895 發表于 2019-9-14 07:02 來自手機 | 只看該作者
f556 發表于 2019-9-13 09:57
goto似乎用起來很方便,但實際上不好用,所以goto是不建議C中使用的。從你的不確定,也說明自己不好把控got ...

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

使用道具 舉報

7#
ID:155507 發表于 2019-9-14 08:39 | 只看該作者
GOTO語句使程序的靜態結構和動態結構不一致,從而使程序難以理解,難以查錯。

有人認為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.從多重循環中直接跳出 ;
2. 出錯時清除資源; 
3.可增加程序的清晰度的情況。

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

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

回復

使用道具 舉報

8#
ID:155507 發表于 2019-9-14 13:07 | 只看該作者
夜遇 發表于 2019-9-14 07:02
是,程序按現在的想法編寫至少有11個goto語句,所以有點怕出錯。其實我主要問的是while(1);這個死循環 ...

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

使用道具 舉報

9#
ID:462827 發表于 2019-9-14 23:23 | 只看該作者
盡量不用goto,你想要的功能也照樣能寫出來。
回復

使用道具 舉報

10#
ID:123289 發表于 2019-9-15 10:26 | 只看該作者
事物有其兩面性,如果GOTO一無是處就沒有存在的價值了。
回復

使用道具 舉報

11#
ID:600906 發表于 2019-9-15 11:18 | 只看該作者
不建議用goto語句,可以改為函數調用,這樣是代碼更加高效化
回復

使用道具 舉報

12#
ID:592807 發表于 2019-9-15 17:49 | 只看該作者
dzbj 發表于 2019-9-13 11:12
搭車問下 看好多地方都說盡量不用goto 它哪不好啊

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

使用道具 舉報

13#
ID:611768 發表于 2019-9-15 19:51 | 只看該作者
goto在運行過程當中可能不是很穩定,建議不要用goto吧
回復

使用道具 舉報

14#
ID:383084 發表于 2019-9-15 20:12 | 只看該作者
使用起來是沒什么問題,但可以把goto換成要執行的函數啊,goto使用多了程序的執行不好把控
回復

使用道具 舉報

15#
ID:519162 發表于 2019-9-15 20:33 | 只看該作者
盡量別用GOTO這個
回復

使用道具 舉報

16#
ID:611801 發表于 2019-9-15 21:02 | 只看該作者
強烈建議不要用goto,C語言goto其實差點被刪掉了...除非C用了很長時間了,否則不要這個語句...你這個肯定可以用函數調用的方式寫,比這個更易懂
回復

使用道具 舉報

17#
ID:611890 發表于 2019-9-16 09:28 | 只看該作者
我覺得可以這樣寫,但是要加一個else return ;這樣可以避免因為沒有考慮全某種情況而造成死循環
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: japanhd成人 | 九九热免费视频在线观看 | 免费看黄色小视频 | 国产一区二区在线91 | 91av视频在线观看 | 国产精品99999999| 国产精品99久久久久久www | av福利网站 | 亚洲国产成人在线视频 | 国产一卡二卡三卡 | 国产免费播放视频 | 国产高清亚洲 | 久久国产欧美一区二区三区精品 | 中文字幕免费 | 91精品国产综合久久小仙女图片 | 亚洲一二三区精品 | 亚洲成av人影片在线观看 | 久久久www成人免费无遮挡大片 | 欧美日韩国产一区二区三区 | 成人精品视频在线观看 | 成人精品一区亚洲午夜久久久 | 亚洲成人免费视频在线 | 日韩手机在线视频 | 成人不卡 | av国产精品 | 亚洲精选久久 | 黄色一级特级片 | 国产精品日韩欧美一区二区三区 | 国产精品夜夜夜一区二区三区尤 | 久久手机在线视频 | 中文字幕在线不卡播放 | 成人午夜网站 | 久久国产精品免费一区二区三区 | 久热m3u8 | 天天爽天天操 | 国产福利视频 | 久久国内精品 | 成人午夜网 | 亚州精品天堂中文字幕 | 午夜在线视频 | 欧美一区二区在线视频 |