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