有关wndproc问题

wndprocprevproc;这算是定义一个变量还是函数为什么没有括号像prevproc()但是后面为什么调用prevproc(hwnd,umsg,......);??... wndproc prevproc;
这算是定义一个变量还是函数
为什么没有括号像 prevproc()
但是后面为什么调用 prevproc(hwnd,umsg,......);
??
展开
 我来答
Bk0X
2012-07-18 · TA获得超过9413个赞
知道小有建树答主
回答量:1217
采纳率:60%
帮助的人:669万
展开全部
但是后面为什么调用 prevproc(hwnd,umsg,......);
-- 从这句话来看, prevproc是"函数指针".

函数指针就是函数的地址, 比如说:

typedef void (*FType)(int); // 函数指针的语法, 返回值和参数类型可以不同.

void fun(int i); // 真正的函数

void main(){
FType ptr = fun; // 函数指针ptr指向fun函数

fun(100);
ptr(100); // 这两句的效果是一样的.
}
追问
那为什么不是定义 WNDPROC  *prevproc
追答
窗口过程吗?
声明是 typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
WNDPROC *prevproc需要改成WNDPROC prevproc; // *符号不需要, 已经是指针了.

至于wndproc prevproc;我不清楚定义代码, 所以我能肯定.
如果用的是VC, 右键点击wndproc选转到定义, 就可以看到他的定义代码了.

如果类似于
typedef WNDPROC wndproc; 那么2者等价
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式