typedef用法
typedef作用:為一種數據類型取一個別名 (簡化復雜的類型聲明)
typedef int t1; typedef char t2; int main() { t1 a = 88; t2 b = 'p'; printf("a=%d b=%c\n", a, b); }
struct用法
struct Node: 代表結構體的一種數據類型
// 定義結構體的同時定義變量t1 struct Node { int data; char *p; } t1; t1.data; // 使用 // t1是變量 // 定義結構體之后再定義變量t1 struct Node { int data; char *p; }; struct Node t1; // 使用前定義 struct Node t2; t1.data; // 使用 t2->p; // 定義結構體,但不定義結構體名字Node struct { int data; char *p; }t1, t2; // 只需要t1 t2兩個變量,后面不需要用結構體名定義其它變量時可以這樣操作,但是后面沒法定義新的變量 t1.data; t2->p;
typedef 與 struct結構體
typedef 給結構體定義 別名
// typedef 定義struct Node 結構體類型 typedef struct Node { int data; char *p; } t1; // 此時t1是結構體類型, 類似於int , char // typedef給struct Node取的別名t1, t1 stu; // t1是結構體類型,使用前先定義一個變量stu stu.a;
注:
struct data {} t1; // t1是變量
typedef struct data {} t1; // t1是結構體類型
typedef 與 函數指針
typedef char (*Func) (int, int)
typedef 定義了Func類型, Func類型為指向某種函數的指針,這種函數以char為返回值,int為參數
用法: 返回類型 (*新類型) (參數表)
#include <iostream> #include <string> using namespace std; int GetMax(int a, int b) { return a > b ? a : b; } // 兩種寫法 typedef int (FuncA) (int, int); typedef int (*FuncB) (int, int); int main() { FuncA * a = GetMax; FuncB b = GetMax; int Ta = a(66, 21); cout<<Ta<<endl; int Tb = b(28, 86); cout<<Tb<<endl; return 0; }