鱼C论坛

 找回密码
 立即注册
查看: 2292|回复: 2

关于回调函数(窗口过程)头部的几个变量问题

[复制链接]
发表于 2015-1-28 01:56:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
LRESULT CALLBACK WinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC   hdc;
PAINTSTRUCT ps;
RECT  rect;
switch (message){
这个是回调函数的一部分,我没全部复制下来

HDC   hdc;
PAINTSTRUCT ps;
RECT  rect;
这三个变量每次windows调用这个回调函数的时候,是不是都会在内存中动态生成,然后,退出回调函数后又给释放了呢?要是这样的话,会不会感觉有点冗余呢。为何不把这三个变量定义在WinMain函数的外面呢?况且,假如我后期程序扩充越来越大,这个回调函数中头部的变量定义越来越多的话,每次执行回调函数不是都要申请一大片内存,然后又释放一大片的内存了呢??

如何破呢??
大家觉得我的这个担心有没有必要的?或者说,这点内存跟执行速度不必考虑呢?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-15 14:45:54 | 显示全部楼层
这些变量是局部变量,存在于栈中,生存于函数开始,结束于函数返回,系统会自动分配栈的空间,所以,你不用担心局部变量的内存问题。相反,把一些只在局部用的变量,定义成全局的才是浪费,局部的可以做到,随用随取,而全局的只能等到程序结束之后,才能释放,而且会造成代码阅读的困难。
你的担心是多余的,这点内存实在是太小了,不会影响执行速度的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-16 15:10:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-30 17:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表