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]
。