<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jasmine214--love

    只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
    posts - 731, comments - 60, trackbacks - 0, articles - 0

    typedef 類型重命名 與#define 宏定義

    Posted on 2010-11-29 13:59 幻海藍夢 閱讀(1269) 評論(0)  編輯  收藏 所屬分類: C語言學習
    在現實生活中,信息的概念可能是長度,數量和面積等。在C語言中,信息被抽象為int、float和double等基本數據類型。從基本數據類型名稱上, 不能夠看出其所代表的物理屬性,并且int、float和double為系統關鍵字,不可以修改。為了解決用戶自定義數據類型名稱的需求,C語言中引入類 型重定義語句typedef,可以為數據類型定義新的類型名稱,從而豐富數據類型所包含的屬性信息。
    typedef的語法描述
    typedef 類型名稱 類型標識符;
    typedef為系統保留字,“類型名稱”為已知數據類型名稱,包括基本數據類型和用戶自定義數據類型,“類型標識符” 為新的類型名稱。例如:
    typedef double LENGTH;
    typedef unsigned int COUNT;
    定 義新的類型名稱之后,可像基本數據類型那樣定義變量。例如:
    typedef unsigned int COUNT;
    unsigned int b;
    COUNT c;
    typedef 的主要應用有如下的幾種形式:
    1) 為基本數據類型定義新的類型名。例如:
    typedef unsigned int COUNT;
    typedef double AREA;
    此種應用的主要目的,首先是豐富數據類型中包含的屬 性信息,其次是為了系統移植的需要,稍后詳細描述。
    2) 為自定義數據類型(結構體、公用體和枚舉類型)定義簡潔的類型名稱。例如:
    struct Point
    {
    double x;
    double y;
    double z;
    };
    struct Point oPoint1={100,100,0};
    struct Point oPoint2;
    其中結構體struct Point為新的數據類型,在定義變量的時候均要有保留字struct,而不能像int和double那樣直接使用Point來定義變量。如果經過如下的 修改,
    typedef struct tagPoint
    {
    double x;
    double y;
    double z;
    } Point;
    定義變量的方法可以簡化為
    Point oPoint;
    由于定義結構體類型有多種形式,因此可以修改 如下:
    typedef struct
    {
    double x;
    double y;
    double z;
    } Point;
    3) 為數組定義簡潔的類型名稱。例如,定義三個長度為5的整型數組,
    int a[10],b[10],c[10],d[10];
    在C語言中,可以將長度為10的整型數組看作為一個新的數據類型,再利用typedef為其重 定義一個新的名稱,可以更加簡潔形式定義此種類型的變量,具體的處理方式如下:
    typedef int INT_ARRAY_10[10];
    typedef int INT_ARRAY_20[20];
    INT_ARRAY_10 a,b,c,d;
    INT_ARRAY_20 e;
    其中 INT_ARRAY_10和INT_ARRAY_20為新的類型名,10 和20 為數組的長度。a,b,c,d均是長度為10的整型數組,e是長度為20的整型數組。
    4) 為指針定義簡潔的名稱。首先為數據指針定義新的名稱,例如
    typedef char * STRING;
    STRING csName={“Jhon”};
    其次,可以為函數指針定義新的名稱,例如
    typedef int (*MyFUN)(int a,int b);
    其中MyFUN代表 int *XFunction(int a,intb)類型指針的新名稱。例如
    typedef int (*MyFUN)(int a,int b);
    int Max(int a,int b);
    MyFUN *pMyFun;
    pMyFun= Max;
    在使用typedef時,應當注意如下的問題:
    1) typedef的目的是為已知數據類型增加一個新的名稱。因此并沒有引入新的數據類型。
    2) typedef 只適于類型名稱定義,不適合變量的定義。
    3) typedef 與#define具有相似的之處,但是實質不同。
    提示 #define AREA double 與 typedef double AREA 可以達到相同的效果。但是其實質不同, #define為預編譯處理命令,主要定義常量,此常量可以為任何的字符及其組合,在編譯之前,將此常量出現的所有位置,用其代表的字符或字符組合無條件 的替換,然后進行編譯。typedef是為已知數據類型增加一個新名稱,其原理與使用int double等保留字一致。
    原文: http://blog.chinaunix.net/u2/75045/showart_1120891.html
    主站蜘蛛池模板: 亚洲精品乱码久久久久久蜜桃图片| 国产成人A人亚洲精品无码| 亚洲天堂电影在线观看| 99久热只有精品视频免费观看17| 亚洲精品福利视频| **一级一级毛片免费观看| 亚洲第一页在线播放| 国产h视频在线观看免费| 一级毛片免费毛片毛片| 亚洲国产成人精品女人久久久 | 免费视频专区一国产盗摄| 亚洲成a人片在线观| 午夜精品在线免费观看| 免费大片av手机看片| 亚洲精品无码mv在线观看网站| 四虎成人精品永久免费AV | 亚洲av日韩精品久久久久久a| www.91亚洲| 久草福利资源网站免费| 亚洲伊人久久大香线蕉结合| 日韩免费无砖专区2020狼| a毛片成人免费全部播放| 亚洲国产高清在线| 毛片在线看免费版| 一级A毛片免费观看久久精品| 亚洲av一综合av一区| 青青草免费在线视频| 一道本在线免费视频| 亚洲色成人网一二三区| 亚洲精品偷拍视频免费观看| 亚洲AV无码一区二区三区系列| 色九月亚洲综合网| 永久免费bbbbbb视频| 羞羞视频在线免费观看| 亚洲精品无码永久在线观看你懂的 | 最近2019中文字幕免费看最新| 国产天堂亚洲国产碰碰| 亚洲爆乳精品无码一区二区三区| 我们的2018在线观看免费高清| 色吊丝性永久免费看码| 亚洲精品在线电影|