51單片機C語言的goto無條件轉移語句

2013-09-02 14:59 來源:電子信息網 作者:和靜

1、goto語句為無條件轉向語句,它的一般形式為:

goto 語句標號;

它是將程序運行的流向轉到它所指定的標號處去執(zhí)行

2、結構化程序設計方法主張限制使用goto語句,因為濫用goto語句將使程序流程無規(guī)律,可讀性差。但也不是絕對禁止使用goto語句,一般來說,可以有兩種用途

1)與if語句一起構成循環(huán)結構

2)從循環(huán)體內跳轉到循環(huán)體外,但在c語言中可以使用break語句和continue語句跳出本層循環(huán)和結束本次循環(huán),goto語句的使用機 會已大大減少,只是需要從多層循環(huán)的內層循環(huán)跳到外層循環(huán)時才用到goto語句。但是這種用法不符合結構化原則,一般不宜采用,只有在不得已時(例如能夠 大大提高效率)才使用。

3、在keil c51中新建工程ex22,編寫如下程序代碼,并編譯生成ex22.hex文件。

//實例22:利用goto無條件轉移語句使程序執(zhí)行順序發(fā)生改變,并將結果送到P0口顯示

#include //包含頭文件

//延時函數(shù)

void delay(void)

{

unsigned int i,j;

for(i=0;i<5000;i++)

for(j=0;j<50;j++);

}

void main(void)

{

P0 = 0xff; //程序開始,,p0口的8個led全部熄滅

delay();

//在此添加一個標號

loop: P0 = 0x0f; //

delay();

P0 = 0xf0; //

delay();

goto loop; //無條件跳轉到標號處

P0 = 0x55; //由于上一步程序發(fā)生了無條件跳轉,所以下面這些語句不會被執(zhí)行

delay();

while(1) // 程序在此無限循環(huán)

{

}

}

1 2 > 
仿真 51單片機 goto

相關閱讀

暫無數(shù)據

一周熱門