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