91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言存儲模型

發布時間:2020-07-12 03:17:09 來源:網絡 閱讀:374 作者:sjgwyy 欄目:編程語言

auto:默認,自動分配空間,自動回收空間

register:

        1. register變量必須是能被CPU寄存器所接受的類型,這通常意味著register變量必須是一個單個            的值,并且其長度應小或等整型的長度。這與處理器的類型有關。

        2. 聲明為register僅僅是一個請求,而非命令,因此變量仍然可能是普通的自動變量,沒有放在            寄存器中。

        3. 由于變量有可能存儲在寄存器中,因此不能用取地址運算符“&”獲取register變量的地址。            如果有這樣的寫法,編譯器會報錯。

        4. 只有局部變量和形參可以作為register變量,全局變量不行。

        5. 實際上有些系統并不把register變量存放在寄存器中,而優化的編譯系統則可以自動識別使用            頻繁的變量而把他們放在寄存器中。

static:靜態型

      1.自動初始化為0值或空值,并值其變量的值有繼承性

 void func(void)

 {

static int x = 0;

x = x + 1;

printf("%p->%d\n",&x,x);

 }

 int main()

 {

func();

func();

func();

 }

 Result:

1

2

3

 備注:這里的static就具有繼承性,意思第一次定int x,下次再調用的時候就不再調用

    2.限制作用域范圍

      main.c

      #include <stdio.h>

      #include <stdlib.h>

    

      #include "proj.h"

    

      static int i = 10;

    int main()

    {

     printf("[%s]:i = %d\n",__FUNCTION__,i);

     //__FUNCTION__表示是哪個函數

     func();

     exit(0);

    }

    

    proj.h

    #ifndef PROJ_H__

    #define PROJ_H__

     void func(void);

    

    #endif

 

    proj.c

    #include <stdio.h>

    #include <stdlib.h>

    #include "proj.h"

    static int i = 100;

    

    void func(void)

    {

     printf("[%s]:i= %d\n",__FUNCTION__,i);

     exit(0);

    }

    

    Result:

[main]:i = 10

[func]:i = 100


注意static 

1.以上如果變量i不加static會在編譯的時候會出現變量沖突,

  加了static表示只能在當前文件中使用

2.如果在void func(void)加一個static 表示只能在當前文件中調用,

  在其他文件中不能調用,如上面main.c


extern:說明型

不能改變被是一個說明的變量的值或類型


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寿阳县| 奇台县| 镇巴县| 建始县| 宝兴县| 鄯善县| 祁阳县| 阳朔县| 霍林郭勒市| 库尔勒市| 兴宁市| 富阳市| 庆阳市| 延津县| 延寿县| 冕宁县| 奉化市| 明溪县| 沾益县| 怀来县| 东明县| 铜梁县| 科技| 长兴县| 东乡县| 巫溪县| 合江县| 四子王旗| 汝阳县| 建平县| 和平区| 太原市| 佛学| 苗栗县| 海丰县| 竹山县| 上饶市| 历史| 嘉黎县| 石棉县| 沽源县|