廢話不多說,請看下面程序:
#includeusing namespace std; #define SIGN1 char* // typedef char * SIGN2;//typedef是一條語句所以以分號結尾 int main() { SIGN1 ch1,ch2; SIGN2 ch3,ch4; cout< 想一想答案是什麼???
#define宏替換只是簡單的替換:(預處理時完成的)(以#開頭的都是預處理命令,結尾沒有分號,因為它們不是語句)
SIGN1 ch1,ch2; ----------->>>> char * ch1,ch2;
ch1是一個指針(char *)四個字節 ch2類型為 char一個字節
typedef 類型重命名,被命名的標示符具有類型定義說明的功能(編譯時處理)(是一條語句,所以以分號結尾)
SIGN2 ch3,ch4; ----------->>>> char * ch3,*ch4;
ch3和ch4都是指針