1、定义一种类型的别名,而不只是简单的宏替换
一般就用来,定义写结构体如c中的struct
还有就是对于一些易混淆的 类型定义可以用typedef typdef char* CHAR
注意和#define的区别,define是宏替换,typedef是
2、 跨平台的的用法, typdef long long LONG 这个用法可以和#define可以互换的。
3、第三种是 我要重点总结的,因为原来看了老是忘,希望看我这篇博客的同学,也像我一样,自己好好动手想想,
不然老忘,看懂了和会做是完全两会事儿。
为复杂的声明定义一个新的简单的别名。
方法是:在原来的声明里逐步用别名替换一部分复杂声明,如此循环,把带变量名的部分留到最后替换,得到的
就是原声明的最简化版。举例:
原声明:void (*b[10]) (void (*)());
变量名为b,先替换右边部分括号里的,pFunParam为别名一:
typedef void (*pFunParam)();
再替换左边的变量b,pFunx为别名二:
typedef void (*pFunx)(pFunParam);
原声明的最简化版: pFunx b[10];
原声明:doube(*)() (*e)[9];
变量名为e,先替换左边部分,pFuny为别名一:
typedef double(*pFuny)();
再替换右边的变量e,pFunParamy为别名二
typedef pFuny (*pFunParamy)[9];
原声明的最简化版:
pFunParamy e;
首先要把指针的结构弄明白,后面去替换就行了 ,看懂了指针的结构还是挺easy的~
一般就用来,定义写结构体如c中的struct
还有就是对于一些易混淆的 类型定义可以用typedef typdef char* CHAR
注意和#define的区别,define是宏替换,typedef是
2、 跨平台的的用法, typdef long long LONG 这个用法可以和#define可以互换的。
3、第三种是 我要重点总结的,因为原来看了老是忘,希望看我这篇博客的同学,也像我一样,自己好好动手想想,
不然老忘,看懂了和会做是完全两会事儿。
为复杂的声明定义一个新的简单的别名。
方法是:在原来的声明里逐步用别名替换一部分复杂声明,如此循环,把带变量名的部分留到最后替换,得到的
就是原声明的最简化版。举例:
原声明:void (*b[10]) (void (*)());
变量名为b,先替换右边部分括号里的,pFunParam为别名一:
typedef void (*pFunParam)();
再替换左边的变量b,pFunx为别名二:
typedef void (*pFunx)(pFunParam);
原声明的最简化版: pFunx b[10];
原声明:doube(*)() (*e)[9];
变量名为e,先替换左边部分,pFuny为别名一:
typedef double(*pFuny)();
再替换右边的变量e,pFunParamy为别名二
typedef pFuny (*pFunParamy)[9];
原声明的最简化版:
pFunParamy e;
首先要把指针的结构弄明白,后面去替换就行了 ,看懂了指针的结构还是挺easy的~