<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                一般情況下,變量的值是存儲在內存中的,CPU 每次使用數據都要從內存中讀取。如果有一些變量使用非常頻繁,從內存中讀取就會消耗很多時間,例如 for 循環中的增量控制: ~~~ int i; for(i=0; i<1000; i++){ // Some Code } ~~~ 執行這段代碼,CPU 為了獲得 i,會讀取 1000 次內存。 為了解決這個問題,可以將使用頻繁的變量放在CPU的通用寄存器中,這樣使用該變量時就不必訪問內存,直接從寄存器中讀取,大大提高程序的運行效率。 不過寄存器的數量是有限的,通常是把使用最頻繁的變量定義為 register 的。 來看一個計算 π 的近似值的例子,求解的一個近似公式如下: ![](http://c.biancheng.net/uploads/allimg/190122/1101091C6-0.gif) 為了提高精度,循環的次數越多越好,可以將循環的增量控制定義為寄存器變量,如下所示: ~~~ #include <stdio.h> #include <conio.h> int main() { register int i = 0; // 寄存器變量 double sign = 1.0, res = 0, ad = 1.0; for(i=1; i<=100000000; i++) { res += ad; sign=-sign; ad=sign/(2*i+1); } res *= 4; printf("pi is %f", res); getch(); return 0; } ~~~ 運行結果: pi is 3.141593 關于寄存器變量有以下事項需要注意: 1. 為寄存器變量分配寄存器是動態完成的,因此,**只有局部變量和形式參數才能定義為寄存器變量** 2. 局部靜態變量不能定義為寄存器變量,因為一個變量只能聲明為一種存儲類別。 3. 寄存器的長度一般和機器的字長一致,只有較短的類型如 int、char、short 等才適合定義為寄存器變量,諸如 double 等較大的類型,不推薦將其定義為寄存器類型。 4. CPU的寄存器數目有限,即使定義了寄存器變量,編譯器可能并不真正為其分配寄存器,而是將其當做普通的auto變量來對待,為其分配棧內存。當然,有些優秀的編譯器,能自動識別使用頻繁的變量,如循環控制變量等,在有可用的寄存器時,即使沒有使用 register 關鍵字,也自動為其分配寄存器,無須由程序員來指定。
                  <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>

                              哎呀哎呀视频在线观看