会展中心网站建设,工程建设有限公司经营范围,免费制作个人网站app,写作网站vir一、为基本数据类型起别名 typedef int myint; myint x 5; myint是int的别名#xff0c;可以使用myint来代替int声明变量#xff0c;这个很好理解#xff0c;但是也很少有人这么用吧。
二、为结构体起别名 …
一、为基本数据类型起别名 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 };