c語(yǔ)言fgets一行一行讀取文件 單片機(jī)C語(yǔ)言中如何從子程序1某一行跳轉(zhuǎn)到子程序2某一行?
單片機(jī)C語(yǔ)言中如何從子程序1某一行跳轉(zhuǎn)到子程序2某一行?C語(yǔ)言有一個(gè)名為setjmp的標(biāo)準(zhǔn)庫(kù)。H、 它提供了兩個(gè)函數(shù)來跨函數(shù)跳轉(zhuǎn),但不清楚C51是否支持它。。。如果要這樣做,可以混合使用程序集并使用J
單片機(jī)C語(yǔ)言中如何從子程序1某一行跳轉(zhuǎn)到子程序2某一行?
C語(yǔ)言有一個(gè)名為setjmp的標(biāo)準(zhǔn)庫(kù)。H、 它提供了兩個(gè)函數(shù)來跨函數(shù)跳轉(zhuǎn),但不清楚C51是否支持它。。。如果要這樣做,可以混合使用程序集并使用JMP指令。但是,不建議在子函數(shù)之間跳轉(zhuǎn)。可能有錯(cuò)誤。JMP是一個(gè)沒有現(xiàn)成保護(hù)的純跳轉(zhuǎn)。你應(yīng)該注意你的程序遇到RET指令時(shí)的位置。。。最簡(jiǎn)單的是,例如,函數(shù)1的返回值是一個(gè)2字節(jié)的數(shù)字,而函數(shù)2的返回值是一個(gè)4字節(jié)的數(shù)字。當(dāng)您從第一個(gè)子例程跳到第二個(gè)子例程時(shí),main函數(shù)不調(diào)用函數(shù)2。當(dāng)函數(shù)2返回時(shí),它會(huì)認(rèn)為函數(shù)的返回值仍然是2字節(jié)。這時(shí),出現(xiàn)了一個(gè)錯(cuò)誤,而且不同函數(shù)的參數(shù)列表不同,這也是一個(gè)問題樣本會(huì)引起程序錯(cuò)誤的原因。。。所以這種跳躍很糟糕,適合于沒有參數(shù)和返回值的純過程。。。。