<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                【64.1 函數的三類輸出渠道。】 函數是模塊,模塊必須具備輸入和輸出的接口,從輸入和輸出的角度分析,函數對外部調用者傳遞信息主要有三類渠道,第一類是全局變量,第二類是return返回值,第三類是用指針。全局變量太隱蔽,沒有那么直觀,可讀性稍差。return可讀性強,缺點是一個函數的return只能算一個數據的“出口”,如果一個函數要輸出多個結果,return就力不從心。指針作為函數的輸出接口,就能隨心所欲了,不但可讀性強,而且輸出的接口數量不受限制。 【64.2 只有一個輸出接口的時候。】 現在舉一個例子,要用函數實現一個加法運算,輸出“一個”加法運算的和,求3加上5等于8。下面三個例子中分別使用“全局變量,return,指針”這三類輸出接口。 第一類:全局變量。 unsigned char DiaoYongZhe; //調用者 unsigned char BeiJiaShu; //被加數 unsigned char JiaShu; //加數 unsigned char He; //輸出的接口,加法運算的"和"。 void JiaFa(void) { He=BeiJiaShu+JiaShu; } void main() { BeiJiaShu=3; //填入被加數3 JiaShu=5; //填入加數5 JiaFa(); //調用一次加法運算的函數 DiaoYongZhe=He; //把加法運算的“和”賦值給調用者。 } 第二類:return。 unsigned char DiaoYongZhe; //調用者 unsigned char JiaFa(unsigned char BeiJiaShu,unsigned char JiaShu) { unsigned char He; He=BeiJiaShu+JiaShu; return He; } void main() { DiaoYongZhe=JiaFa(3,5); //把加法運算的“和”賦值給調用者,一氣呵成。 } 第三類:指針。 unsigned char DiaoYongZhe; //調用者 void char JiaFa(unsigned char BeiJiaShu,unsigned char JiaShu,unsigned char \*pu8He) { \*pu8He=BeiJiaShu+JiaShu; } void main() { JiaFa(3,5,&DiaoYongZhe); //通過指針這個輸出渠道,把加法運算的“和”賦值給調用者,一氣呵成。 } 【64.3 有多個輸出接口的時候。】 現在舉一個例子,要用函數實現一個除法運算,分別輸出除法運算的商和余數這“兩個”數,求5除以3等于1余2。因為return只能輸出一個結果,所以這里不列舉return的例子,只使用“全局變量”和“指針”這兩類輸出接口。 第一類:全局變量。 unsigned char DiaoYongZhe\_Shang; //調用者的商 unsigned char DiaoYongZhe\_Yu; //調用者的余數 unsigned char BeiChuShu; //被除數 unsigned char ChuShu; //除數 unsigned char Shang; //輸出的接口,除法運算的"商"。 unsigned char Yu; //輸出的接口,除法運算的"余"。 void ChuFa(void) { Shang=BeiChuShu/ChuShu; //求商。假設除數不會為0的情況。 Yu=BeiChuShu%ChuShu; //求余數。假設除數不會為0的情況。 } void main() { BeiChuShu=5; //填入被除數5 ChuShu=3; //填入除數3 ChuFa(); //調用一次除法運算的函數 DiaoYongZhe\_Shang=Shang; //把除法運算的“商”賦值給調用者的商。 DiaoYongZhe\_Yu=Yu; //把除法運算的“余數”賦值給調用者的余數。 } 第二類:return。 return只能輸出一個結果,力不從心,所以這里不列舉return的例子。 第三類:指針。 unsigned char DiaoYongZhe\_Shang; //調用者的商 unsigned char DiaoYongZhe\_Yu; //調用者的余數 void ChuFa(unsigned char BeiChuShu, unsigned char ChuShu, unsigned char \*pu8Shang, unsigned char \*pu8Yu) { \*pu8Shang=BeiChuShu/ChuShu; //求商。假設除數不會為0的情況。 \*pu8Yu=BeiChuShu%ChuShu; //求余數。假設除數不會為0的情況。 } void main() { ChuFa(5,3,&DiaoYongZhe\_Shang,&DiaoYongZhe\_Yu);//通過兩個指針的輸出接口,一氣呵成。 } 【64.4 例程練習和分析。】 現在編一個練習程序。 /\*---C語言學習區域的開始。-----------------------------------------------\*/ void ChuFa(unsigned char BeiChuShu, unsigned char ChuShu, unsigned char \*pu8Shang, unsigned char \*pu8Yu); //函數聲明 unsigned char DiaoYongZhe\_Shang; //調用者的商 unsigned char DiaoYongZhe\_Yu; //調用者的余數 void ChuFa(unsigned char BeiChuShu, unsigned char ChuShu, unsigned char \*pu8Shang, unsigned char \*pu8Yu) //函數定義 { \*pu8Shang=BeiChuShu/ChuShu; //求商。假設除數不會為0的情況。 \*pu8Yu=BeiChuShu%ChuShu; //求余數。假設除數不會為0的情況。 } void main() //主函數 { ChuFa(5,3,&DiaoYongZhe\_Shang,&DiaoYongZhe\_Yu);//函數調用。通過兩個指針的輸出接口,一氣呵成。 View(DiaoYongZhe\_Shang); //把第1個數DiaoYongZhe\_Shang發送到電腦端的串口助手軟件上觀察。 View(DiaoYongZhe\_Yu); //把第2個數DiaoYongZhe\_Yu發送到電腦端的串口助手軟件上觀察。 while(1) { } } /\*---C語言學習區域的結束。-----------------------------------------------\*/ 在電腦串口助手軟件上觀察到的程序執行現象如下: 開始... 第1個數 十進制:1 十六進制:1 二進制:1 第2個數 十進制:2 十六進制:2 二進制:10 分析: DiaoYongZhe\_Shang為1。 DiaoYongZhe\_Yu為2。 【64.5 如何在單片機上練習本章節C語言程序?】 直接復制前面章節中第十一節的模板程序,練習代碼時只需要更改“C語言學習區域”的代碼就可以了,其它部分的代碼不要動。編譯后,把程序下載進帶串口的51學習板,通過電腦端的串口助手軟件就可以觀察到不同的變量數值,詳細方法請看第十一節內容。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看