变量的作用域问题?

亚细亚 2009-07-23 02:15:48
变量aa的作用域问题;
在case 1001: 分支中通过sprintf给变量aa赋值,可是为什么在分支 case 1002:中得不得变量aa的值(值为空)?

LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
char aa[256];
switch(uMsg)
{
case WM_CREATE:

CreateWindow("BUTTON","set",WS_CHILD|WS_VISIBLE |BS_PUSHBUTTON,50,50,90,30,hWnd,(HMENU)1001,NULL,NULL);
CreateWindow("BUTTON","get",WS_CHILD|WS_VISIBLE |BS_PUSHBUTTON,150,50,90,30,hWnd,(HMENU)1002,NULL,NULL);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case 1001:
{
sprintf(aa,"%s","hello everyone");
MessageBox(NULL,aa,"",MB_OK);
}
break;
case 1002:
{
MessageBox(NULL,aa,"",MB_OK);
}
break;
}
break;
case WM_CLOSE:
DestroyWindow(hWnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
return 0;
}
...全文
53 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyldf 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yaxiya 的回复:]
我的方法为什么不对?
[/Quote]
你的两个case能同时执行么?
函数一退出,你的aa就废了
fireyou 2009-07-23
  • 打赏
  • 举报
回复
局部变量使用后就丢弃了
cyldf 2009-07-23
  • 打赏
  • 举报
回复
楼主这么做,就把char aa[256]声明为全局的
亚细亚 2009-07-23
  • 打赏
  • 举报
回复
我的方法为什么不对?
goodname 2009-07-23
  • 打赏
  • 举报
回复
static char aa[256];

或者放到函数上面去

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧