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;
}
