typedef 還可以掩飾復合型別,如指標和陣列

2021-06-17 21:13:16 字數 962 閱讀 3529

typedef 還可以掩飾復合型別,如

指標和陣列。

例如,你不用像下面這樣重複定義有 81 個字元元素的

陣列:char line[81];

char text[81];

定義乙個 typedef,每當要用到相同型別和大小的

陣列時,可以這樣:

typedef char line[81];

此時line型別即代表了具有81個元素的字元

陣列,使用方法如下:

line text, secondline;//定義了具有81個char元素的字元陣列變數

getline(text);

同樣,可以像下面這樣隱藏

指標語法:

typedef char * pstr;

int mystrcmp(pstr, pstr);

這裡將帶我們到達第乙個 typedef 陷阱。標準函式 strcmp()有兩個『 const char *'型別的引數。因此,它可能會誤導人們像下面這樣宣告 mystrcmp():

int mystrcmp(const pstr, const pstr);

用gnu的gcc和g++

編譯器,是會出現警告的,按照順序,『const pstr'被解釋為『char* const『(乙個指向char的

指標常量),兩者表達的並非同一意思(詳見c++ primer 第四版 p112)。

char * const cp : 定義乙個指向字元的指標常數,即const指標,常指標。

const char* p : 定義乙個指向字元常數的指標,即

常量指標。

char const* p : 等同於const char* p

[2]。

為了得到正確的型別,應當如下宣告:

typedef const char* pstr;

php還可以這樣優化??

google 在 google code 製作了 let s make the web faster 讓我們使得 web 更快 的 中,分享了一些如網頁效能優化的技巧和教程以及工具,今天我就翻譯一篇技巧文章 php 效能優化技巧,他說的5條技巧我都不知道。1.不要隨便就複製變數 有時候為了使 php...

列舉還可以簡化查詢???

第一次聽列舉是在單例模式,心想著列舉是啥,雙重鎖不香嘛?但是在一次批量查詢過程中,愛上了列舉。業務背景 list list lists.newarraylist switch tablename 而真實情況,表有20多張,插入長這樣 我在寫第 99999 01 個的時候終於忍不了了,決定乾掉它。pu...

學習還可以這樣的快樂

忽然間才意識到,自己已經在這裡學習有三個年頭了,學習真是無時無刻沒有被老師灌輸著,處處都能看到老師做事情的智慧型,學習生活化,生活化式的遊戲性的學習,感謝老師的授之以漁,而不是授之以魚,這樣我們才能收穫到真正的本領,師傅領進門,修行在個人,如果真的沒有老師的指路,一切好像就不會是這樣,在外邊的實習的...