辽宁省朝阳网站建设,南开做网站的公司,wordpress 主题 引入js,中山学文网页设计培训学校总结一下typedef用法#xff0c;一共七种#xff0c;分别是#xff1a;为基本数据类型起别名、为结构体起别名、为指针类型起别名、为数组类型起别名、为枚举类型起别名、为模版函数起别名。
目录
一、为基本数据类型起别名
二、为结构体起别名
三、为指针类型起别名
四… 总结一下typedef用法一共七种分别是为基本数据类型起别名、为结构体起别名、为指针类型起别名、为数组类型起别名、为枚举类型起别名、为模版函数起别名。
目录
一、为基本数据类型起别名
二、为结构体起别名
三、为指针类型起别名
四、为函数指针类型起别名
五、为数组类型起别名
六、为枚举类型起别名
七、为模版函数起别名 一、为基本数据类型起别名
typedef int myint;
myint x 5; myint是int的别名可以使用myint来代替int声明变量这个很好理解但是也很少有人这么用吧。
二、为结构体起别名 这个在学C语言时就知道了
typedef struct {int x;int y;
} Point;Point p { 3, 4 };三、为指针类型起别名 在这个例子中intptr是指向int类型的指针的别名可以使用intptr来声明指针变量。为防止代码阅读者有障碍慎用吧。
typedef int* intptr;
intptr p new int;
*p 5;四、为函数指针类型起别名 在这个例子中func_ptr是指向函数的指针类型的别名可以使用func_ptr来声明函数指针变量。
typedef int (*func_ptr)(int, int);
int add(int a, int b) { return a b; }func_ptr f add;
int result (*f)(3, 4);这个在DLL导出用到的比较多如
typedef MyInterface* (*CreateMyObjectFunc)(); 在这个例子中typedef 声明了一个名为 CreateMyObjectFunc 的新类型。CreateMyObjectFunc 是一个函数指针类型它指向一个返回值为 MyInterface* 类型的函数该函数没有参数。 这种函数指针类型的定义通常用于动态加载库文件中的函数。通过这种方式可以定义一个函数指针类型来代表动态加载的库文件中的函数并将其作为参数传递给动态加载函数。然后可以使用该函数指针类型调用动态加载函数中的函数。在这种情况下CreateMyObjectFunc 函数指针类型可以用于动态加载库文件中的一个函数该函数返回一个 MyInterface 类型的指针。 五、为数组类型起别名
typedef int myarray[10];
myarray arr { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };六、为枚举类型起别名
typedef enum { red, green, blue } Color;
Color c green;七、为模版函数起别名 在这个例子中IntStruct是模板类型MyStruct的具体化可以使用IntStruct来声明MyStructint类型的变量。
template typename T
struct MyStruct {T value;
};typedef MyStructint IntStruct;
IntStruct s { 5 };