2010年6月30日 星期三

Typedef

(摘錄)
typedef用來聲明一個別名,typedef後面的語法,是一個聲明。 本來筆者以為這裡不會產生什麼誤解的,但結果卻出乎意料,產生誤解的人不在少數。 罪魁禍首又是那些害人的教材。 在這些教材中介紹typedef的時候通常會寫出如下形式: typedef int PARA; 這種形式跟#define int PARA幾乎一樣,如前面幾章所述,這些教材的宗旨是由淺入深,但實際做出來的行為卻是以偏蓋全。 的確,這種形式在所有形式中是最簡單的,但卻沒有對typedef進一步解釋,使得不少人用#define的思維來看待typedef,把int與PARA分開來看,int是一部分,PARA是另一部分,但實際上根本就不是這麼一回事。 int與PARA是一個整體! 就像int i:聲明一樣是一個整體聲明,只不過int i定義了一個變量,而typedef定義了一個別名。 這些人由於持有這種錯誤的觀念,就會無法理解如下一些聲明: typedef int a[10]; typedef void (*p)(void); 他們會以為a[10]是int的別名,(* p)(void)是void的別名,但這樣的別名看起來又似乎不是合法的名字,於是陷入困惑之中。 實際上,上面的語句把a聲明為具有10個int元素的數組的類型別名,p是一種函數指針的類型別名。 雖然在功能上,typedef可以看作一個跟int PARA分離的動作,但語法上typedef屬於存儲類聲明說明符,因此嚴格來說,typedef int PARA整個是一個完整的聲明。 定義一個函數指針類型。 比如原函數是void func(void); 那麼定義的函數指針類型就是typedef void (*Fun)(void); 然後用此類型生成一個指向函數的指針: Fun func1; 當func1獲取函數地址之後,那麼你就可以向調用原函數那樣來使用這個函數指針: func1(void);

2010年6月29日 星期二

JavaMail

eclipce:
1.在專案點右鍵,選擇properties。
2.Java Build Path中,選擇Libraries標籤。
3.選擇Add External JARs
4.選擇mail.jar