0和0L的区别?

hellodudu 2007-12-18 11:50:21


DWORD ExternalRelease() {
TRACE("Entering CSimulatedCmdTarget::ExternalRelease--RefCount = %ld\n",m_dwRef);
if (m_dwRef == 0)
return 0;
if(--m_dwRef == 0L) {
TRACE("deleting\n");
delete this;
return 0;
}
return m_dwRef;
}


这里的0和0L有什么区别吗?
...全文
2234 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellodudu 2007-12-19
  • 打赏
  • 举报
回复
vc技术内幕中模拟com的例子 m_dwRef是DWORD类型
我跟踪过整个例子 m_dwRef为1时就进入第二个if语句
根本没进入过第一个if语句
oldmanzhao 2007-12-19
  • 打赏
  • 举报
回复
整数常量后面加L表示该数值是一个long型字面值常量,如果不加,则把它视作int型字面值常量,在你的例子中加不加L没有关系。
forwtl 2007-12-19
  • 打赏
  • 举报
回复
不管外部函数调用多少次 ExternalRelease()

保证
delete this;
只被调用一次。

应该没什么区别吧。不懂,学习ing。

一条晚起的虫 2007-12-19
  • 打赏
  • 举报
回复
在这个例子了,0和0L没有区别
lucian2007 2007-12-19
  • 打赏
  • 举报
回复
#define DWORD unsigned long
hellodudu 2007-12-19
  • 打赏
  • 举报
回复
up
hellodudu 2007-12-18
  • 打赏
  • 举报
回复

int a()
{
return 0;
}


up!

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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