<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國際加速解決方案。 廣告
                引言:調用函數時,通常會因為建立調用、傳遞參數、跳轉到函數代碼并返回等花費掉一些時間,C語言的解決辦法是使用類函數宏。在C99中,還提出了另外一種方法:內聯函數。 內聯函數:把函數變為內聯函數將建議編譯器盡可能快速地調用該函數,至于建議的效果則由實現來定義。因此,使函數變為內聯函數可能會簡化函數的調用機制,但也可能不起作用。內聯函數是通過編譯器來實現的,而宏則是在預編譯的時候替換。 **創建內聯函數方法:在函數聲明中使用函數說明符inline。** **內聯函數的特點:** 1、類似于宏,編譯器在看到內聯函數聲明時,就會在使用內聯函數時用函數體代替函數調用,其效果就如同在此處鍵入了函數體的代碼。如: **源碼:** ~~~ #include <stdio.h> inline void eatline() //內聯函數的定義 { while(getchar() != '\n') continue; } int main() { eatline(); //函數調用 } ~~~ **通過編譯器編譯其實的效果如下:** ~~~ #include <stdio.h> inline void eatline() //內聯函數的定義 { while(getchar() != '\n') continue; } int main() { while(getchar() != '\n') continue; } ~~~ 2、內聯函數沒有預留給它的單獨代碼塊,所以無法獲得內聯函數的地址。 3、內聯函數不會在調試器中顯示。比如上面的函數即使使用了gcc -g 選項進行了編譯,通過gdb調試時,也不會有eatline函數。 4、內聯函數應該是比較短小。對于很長的函數,調用函數的時間少于執行函數主體的時間;此時,使用內聯函數不會節省多少時間。 5、內聯函數的定義和對該函數的調用必須在同一文件中,即內聯函數具有內部鏈接。在多個文件程序中,每個調用內聯函數的文件都要對該函數進行定義。達到這個目標的簡單方法為:在頭文件中定義內聯函數,并在使用該函數的文件中包含該頭文件。 6、與C++不同,C允許混合使用內聯函數定義和外部函數定義。因為定義的內聯函數只能在本文件中使用,而定義的外部函數,卻可以通過extern進行外部聲明,在其他文件中使用。如: ~~~ //file1.c inline double square(double); double square (double x) { return x * x; } //file2.c extern double square(double); double square (double x) { return x * x; } //file3.c extern double square(double); int main() { double kw = square(w); } ~~~ 其中file1.c中使用的double函數時本文件中定義的內聯函數,而在file2.c和file3.c中使用的double函數確實file2.c中定義的外部函數。
                  <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>

                              哎呀哎呀视频在线观看