• <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年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345
            統(tǒng)計(jì)
            • 隨筆 - 92
            • 文章 - 4
            • 評(píng)論 - 4
            • 引用 - 0

            導(dǎo)航

            常用鏈接

            留言簿

            隨筆檔案

            文章檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

             

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

            posted on 2014-04-08 16:21 HAOSOLA 閱讀(202) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


             
            Copyright © HAOSOLA Powered by: 博客園 模板提供:滬江博客
            PK10開獎(jiǎng) PK10開獎(jiǎng)
            精品一二三区久久aaa片| 无码乱码观看精品久久| 国产L精品国产亚洲区久久| 久久国产精品一国产精品金尊| 国产精品亚洲综合久久| 性高朝久久久久久久久久| 久久久黄片| 久久精品国产乱子伦| 久久精品无码一区二区WWW| 日韩中文久久| 精品久久亚洲中文无码| 97精品依人久久久大香线蕉97| 男女久久久国产一区二区三区| 久久精品人人做人人爽电影蜜月| 91麻豆国产精品91久久久| 国产精品乱码久久久久久软件| 色偷偷88欧美精品久久久| 热久久最新网站获取| 国产成人精品综合久久久| 久久精品国产亚洲AV忘忧草18| 久久久久久久精品成人热色戒| 一本一本久久aa综合精品| 久久er99热精品一区二区| 久久九九全国免费| 亚洲国产精品成人AV无码久久综合影院| 亚洲欧美久久久久9999| 久久精品国产亚洲αv忘忧草| 亚洲精品无码成人片久久| 久久国产精品二国产精品| 久久久噜噜噜久久中文福利| 亚洲成色999久久网站| 色综合久久久久综合体桃花网| 久久青青草原精品国产| 久久WWW免费人成—看片| 伊人久久大香线蕉综合影院首页| 国产∨亚洲V天堂无码久久久| 国内精品久久久久影院亚洲| 久久精品国产亚洲av麻豆色欲 | 亚洲精品无码久久一线| 久久99热国产这有精品| 久久精品欧美日韩精品|