• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            C++分析研究  
            C++
            日歷
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567
            統計
            • 隨筆 - 92
            • 文章 - 4
            • 評論 - 4
            • 引用 - 0

            導航

            常用鏈接

            留言簿

            隨筆檔案

            文章檔案

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

             

              C語言聲明的優先級規則
              A 聲明從它的名字開始讀取,然后按照優先級順序依次讀取
              B 優先級從高到底依次是:
              B.1 聲明中被括號括起來的那部分
              B.2 后綴操作符:
              括號()表示這是一個函數,而
              方括號[]表示這是一個數組
              B.3 前綴操作符:星號*表示"指向…的指針"
              C 如果const和 volatile 關鍵字的后面緊跟類型說明符(int long等)它作用域類型說明符,其他情況下,const 和 volatile關鍵字作用于它左面緊鄰的指針星后。
              通過上述規則分析下面C語言聲明:
              char * const *(*next)();
              next是一個指針,它指向一個函數,該函數返回一個另一個指針,該指針指向一個類型為char 類型的常量指針
              typdef:它為一種類型引入新的名字,并沒有創建新的類型
              一般情況下,typedef用于簡潔地表示指向其他東西的指針。典型的例子是signal()原型的聲明
              void (*signal(int sig, void (*func)(int)))(int)
              signal是一個函數,它返回一個函數指針,這個函數指針指向的函數接受一個int參數并返回void.
              可通過typedef做如下改變 www.yztrans.com
              typedef void (*sighandler_t)(int);
              sighandler_t signal(int signum, sighandler_t handler);
              C語言存在多種名字空間:
              標簽名(label name)
              標簽(tag):這個名字空間用于所有的結構、枚舉和聯合
              成員名:每個結構或聯合都有自身的名字空間
              其他
              在同一個名字空間里,任何名字必須具有唯一性,但在不同的名字空間里可以存在相同的名字。由于每個結構或者聯合具有自己的名字空間,所以同一個名字可以出現在許多不同的結構內。
              typdedef struct my_tag{int i;}mytype;
              struct my_tag var1;
              mytype var2;
              這個typedef聲明引入了mytype這個名字作為"struct my_tag{int i;}"的簡寫方式。但它同時引入了結構標簽my_tag,在他前面加個關鍵字struct可以表示同樣的意思。
              typedef struct fruit {int weight;}fruit; 語句1
              struct veg{int weight;}veg; 語句2
              它們代表的意思完全不一樣,語句1聲明了結構標簽fruit和typedef聲明的結構類型fruit;實際效果如下
              struct fruit mandarin;
              fruit mandarin;
              語句2聲明了結構標簽veg和變量veg,只有結構標簽能夠在以后的聲明中使用,如
              struct veg potato;
              如果試圖使用veg cabbage這樣的聲明,將是一個錯誤。這有點類似下面的寫法:
              int i;
              i j;
              typedef和宏文本替換之間的區別。可以把typedef看成是一種"封裝"類型----在聲明之后不能再往里面增加別的東西。它和宏的區別體現在兩個方面
              1、可以用其他類型說明符對宏類型名進行擴展,但對typedef所定義的類型名卻不能這樣做 www.jamo123.com
              #define peach int
              unsigned peach i; 沒問題
              typedef int peach;
              unsigned peach i; 語法錯誤
              2、連續幾個變量的聲明中,用typedef定義的類型能夠保證聲明中所有的變量均為同一種類型,而用#define定義的類型無法保證
              #define int_ptr int *
              int_ptr chalk, cheese;
              經過宏擴展
              int *chalk, cheese;
              chalk是一個指針,cheese是一個整型。
              typedef int* int_ptr;
              int_ptr chalk,cheese;
              chalk,cheese都為整型指針
              枚舉類型
              enum sizes { small = 7, medium, large = 10, humungous};
              缺省情況下,整型值是從零開始。如果對列表中的某個標識符進行了賦值,那么緊接其后的那個標識符的值就比所賦的值大1,然后類推
              枚舉中的成員可以當做宏一樣直接使用,相比宏定義枚舉具有一個優點:#define定義的名字一般在編譯時被丟棄,而枚舉名字則通常一直在調試器中可見,可以在調試代碼時使用它們。

            posted on 2014-04-08 16:21 HAOSOLA 閱讀(200) 評論(0)  編輯 收藏 引用
             
            Copyright © HAOSOLA Powered by: 博客園 模板提供:滬江博客
            PK10開獎 PK10開獎
            久久久久亚洲AV无码观看| 99久久人妻无码精品系列| 久久久久久A亚洲欧洲AV冫| 欧美久久一区二区三区| 综合久久国产九一剧情麻豆| 久久久久99精品成人片直播| 久久97久久97精品免视看| 伊人久久大香线蕉综合5g| 久久精品午夜一区二区福利| 久久精品国产WWW456C0M| 色综合久久综合中文综合网| 久久99精品久久久久久9蜜桃| 亚洲国产另类久久久精品| 精品久久久久久无码人妻热 | 久久青青草原国产精品免费| 欧美精品丝袜久久久中文字幕 | 无码国内精品久久人妻蜜桃 | 久久亚洲精品无码aⅴ大香| 久久久91精品国产一区二区三区| 亚洲午夜精品久久久久久app| 久久噜噜电影你懂的| 精品综合久久久久久888蜜芽| 亚洲国产成人久久精品99| 伊人色综合久久| 久久精品国产亚洲AV无码娇色| 中文精品99久久国产| 久久久精品视频免费观看| 91精品国产91久久久久久蜜臀| A狠狠久久蜜臀婷色中文网| 久久久久亚洲AV无码专区首JN| 日韩美女18网站久久精品| 久久国产免费| 亚洲欧美国产日韩综合久久| 国产福利电影一区二区三区久久老子无码午夜伦不| 无码人妻久久一区二区三区 | 久久婷婷五月综合97色| 亚洲中文字幕无码久久综合网| 久久久午夜精品| 一本色道久久99一综合| 乱亲女H秽乱长久久久| 久久国产精品99精品国产|