请教一个简单的问题。。。

ruixing123 2008-10-28 01:44:02
最近在看别人写的一个WIN32 DLL的源代码

其中:

HINSTANCE g_hInstance;

namespace
{
int controlsInit = FALSE;
}


BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD ul_reason_for_call, LPVOID lpReserved)
{
g_hInstance = hInstance;
if (!controlsInit)
{
controlsInit = TRUE;
InitCommonControls(); // Initialize Win95 controls
}
return TRUE;
}

为什么要加一个namespace????

直接这样写有什么弊病?

HINSTANCE g_hInstance;

int controlsInit = FALSE;

BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD ul_reason_for_call, LPVOID lpReserved)
{
g_hInstance = hInstance;
if (!controlsInit)
{
controlsInit = TRUE;
InitCommonControls(); // Initialize Win95 controls
}
return TRUE;
}
...全文
67 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
deerwin1986 2008-10-28
  • 打赏
  • 举报
回复
无名的名字空间在同一文件中是没有区别的 下面的程序段都可以用里面的内容 这样是为了避免让其成为全局空间的变量 在别的文件中容易引起名字冲突 也就是传说中的“名字空间的污染” 是一种良好的编程风格 工程很小时无所谓 很大的话就体现出好处了
太乙 2008-10-28
  • 打赏
  • 举报
回复
汗~~~~~
三文鱼也会飞 2008-10-28
  • 打赏
  • 举报
回复
可能是怕controlsInit的命名冲突吧

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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