typedef基本
今日在代码中看到:
1 | typedef void (ISSCALLBACK *Proc_MVWOnMsgProc)( |
一时之间无法理解其意义,发觉自己对typedef以及函数指针有些生疏,现在重新整理二者用法。
首先看一个变量定义与typedef的区别:
1 | unsigned int number1;//number为 unsigned int 型 |
可以看出原有的定义加上typedef就将其转化为定义原定义的类型。
函数指针
再来说函数指针,举最简单的例子:1
char (*PTRFUN)(int);
表示PTRFUN指向一个形参为int返回值为char的函数
若是加上typedef:1
typedef char (*PTRFUN)(int);
则可以用PTRFUN来定义函数,特别是用在回调函数上:1
int callbackfunc(int num, bool torf, PTRFUN somefunc);
typedef数组指针
今天又在代码中看到:1
2
3
typedef byte BUFFER[BUFSIZE];
BUFFER *m_pBuffer = new BUFFER[BUFNUM];
有点迷惑new出来的是byte[10][3200]还是byte[3200][10]。
其实看m_pBuffer的类型即可,将*m_pBuffer替换到typedef定义中,即是:1
byte *m_pBuffer[BUFSIZE];
即m_pBuffer为指向byte[3200]的指针,可见new出来的一定是byte[10][3200]。