1//相當於為現有型別建立乙個別名,或稱型別別名。2//
整形等3 typedef int
size;45
6//字元陣列
7char line[81];8
char text[81];//
=>
910 typedef char line[81
];11
line text, secondline;
1213
14//
指標15 typedef char *pstr;
16int mystrcmp(pstr p1, pstr p2);//
注:不能寫成int mystrcmp(const pstr p1, const pstr p3);因const pstr p1解釋為char * const cp(不是簡單的替代)
1718
19//
與結構型別組合使用
20 typedef struct
tagmystruct
21 mystruct;//
(此處mystruct為結構型別別名)=>
2526
struct
tagmystruct
27;//
+31 typedef struct
tagmystruct mystruct;
3233
34//
結構中包含指向自己的指標用法
35 typedef struct
tagnode
36 *pnode;//
=>error
40//
1)41 typedef struct
tagnode
42 *pnode;
46//
2)47 typedef struct tagnode *pnode;
48struct
tagnode49;
53//
3)規範
54struct
tagnode55;
59 typedef struct tagnode *pnode;
6061
62//
與define的區別
63//
1)64 typedef char* pstr1;//
重新建立名字
65#define pstr2 char *//
簡單文字替換
66pstr1 s1, s2;
67 pstr2 s3, s4;=>pstr2 s3, *s4;
68//
2)define定義時若定義中有表示式,加括號;typedef則無需。
69#define f(x) x*x=>#define f(x) ((x)*(x))
70main( )
7176
//3)typedef不是簡單的文字替換
77 typedef char *pstr;
78char
string[4] = "
abc";79
const
char *p1 = string;80
const pstr p2 = string;=>error
81 p1++;
82 p2++;
8384
//1) #define巨集定義有乙個特別的長處:可以使用 #ifdef ,#ifndef等來進行邏輯判斷,還可以使用#undef來取消定義。
85//
2) typedef也有乙個特別的長處:它符合範圍規則,使用typedef定義的變數型別其作用範圍限制在所定義的函式或者檔案內(取決於此變數定義的位置),而巨集定義則沒有這種特性。
1//2//c中定義結構型別
3 typedef struct
student
4stu;//
申明變數stu stu1;或struct student stu1;7//
或8 typedef struct
9stu;//
申明變數stu stu1;
1213
//c++中定義結構型別
14struct
student
15;//
申明變數student stu2;
1819
20//
c++中使用區別
21struct
student
22stu1;//
stu1是乙個變數 。訪問stu1.a
2526 typedef struct
student2
27stu2;//
stu2是乙個結構體型別 訪問stu2 s2; s2.a=10;
30//
還有待增加。
函式指標與typedef
一 簡單的函式指標的應用。形式 1 返回型別 函式名 參數列 char pfun int char glfun int a void main 第一行定義了乙個指標變數 pfun 首先我們根據前面提到的 形式 1 認識到它是乙個指向某種函式的指標,這種函式引數是乙個 int型,返回值是 char 型...
函式指標與typedef
關於c 中函式指標的使用 包含對typedef用法的討論 一 簡單的函式指標的應用。形式1 返回型別 函式名 參數列 char pfun int char glfun int a void main 第一行定義了乙個指標變數pfun。首先我們根據前面提到的 形式1 認識到它是乙個指向某種函式的指標,...
typedef 用法與陷阱
首先來看乙個宣告 typedef int myfunc const char const struct stat int 怎麼理解吶?myfunc const char const struct stat int 是int,是不是有點問題。這就是對typedef的理解出了問題。之前見到的都是type...