<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
    主站蜘蛛池模板: 日韩亚洲一区二区三区| 亚洲AV日韩精品一区二区三区| 亚洲日韩av无码| 一道本在线免费视频| | 每天更新的免费av片在线观看| 亚洲Av无码精品色午夜| 暖暖免费在线中文日本| 亚洲成在人天堂一区二区| 日本zzzzwww大片免费| 亚洲国产精品无码久久久| 无码国产精品久久一区免费| 亚洲另类图片另类电影| 成年性生交大片免费看| 久久精品熟女亚洲av麻豆| 免费成人午夜视频| 在线观看免费视频一区| 久久久久久亚洲AV无码专区| 亚洲性线免费观看视频成熟| 亚洲sm另类一区二区三区| 国产hs免费高清在线观看| 久久成人永久免费播放| 亚洲AV福利天堂一区二区三| 黄页网站在线看免费| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲精品黄色视频在线观看免费资源| 91视频免费观看| 亚洲AV无码一区二区三区人| 国产老女人精品免费视频| 国产在线观看xxxx免费| 亚洲女人18毛片水真多| 国产又大又粗又硬又长免费| 久久久精品视频免费观看 | 成a人片亚洲日本久久| 亚洲日韩av无码| 久久精品网站免费观看| 一本到卡二卡三卡免费高| 亚洲精品国产手机| 丁香亚洲综合五月天婷婷| 18女人腿打开无遮掩免费| 无遮挡呻吟娇喘视频免费播放|