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