| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 667 人关注过本帖
标题:[求助] 关于一个语句 谢谢!
只看楼主 加入收藏
hiiamme
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2005-11-21
收藏
 问题点数:0 回复次数:3 
[求助] 关于一个语句 谢谢!

有这样一个语句 if (ptcb!=(OS_TCB*)0) {…..}
其中OS_TCB是定义的一个数据结构,ptcb是OS_TCB型指针,
我不明白的是:(OS_TCB*)0 是什么意思,语法意义是什么,请各个高手帮忙 谢谢了!

图片附件: 游客没有浏览图片的权限,请 登录注册

[此贴子已经被作者于2006-3-2 11:00:32编辑过]

搜索更多相关主题的帖子: TCB 语句 ptcb 定义 
2006-03-02 10:59
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
这是为了数据类型匹配, 因为 ptch 为 OS_TCB 型指针, 所以右边将零指针强行转换为OS_TCB 型指针, 这样使得等式两边的数据类型相同. 但是这样的处理是没有必要的, 不过如此小心的处理不会对程序造成伤害.

下面给你看一个DemoCode


#include <iostream>
using namespace std;

class MyDatatype
{
private:
double d;
public:
MyDatatype(double dValue)
{
d = dValue;
}
void display(){ cout<<d<<endl;}
};

int main()
{
double * pd = new double;
if(pd != NULL) // 你也可以这样写 (pd != (double *)NULL) 但是没有这个必要
{
*pd = 3.14;
cout<<*pd<<endl;
delete pd;
}
else
{
cout<<\"location failed\n\";
}

////////////////////////////
MyDatatype * pTest = new MyDatatype(2.73);
if(pTest != NULL) // 你也可以这样写 (pTest != ( MyDatatype *)NULL) 但是没有这个必要
{
pTest->display();
delete pd;
}
else
{
cout<<\"location failed\n\";
}

return 0;
}

[此贴子已经被作者于2006-3-2 11:20:53编辑过]


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-03-02 11:18
hiiamme
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2005-11-21
收藏
得分:0 

非常感谢你的帮助,你解释的很清除,我已经明白了,谢谢!


2006-03-02 19:34
wanglff
Rank: 2
等 级:新手上路
威 望:5
帖 子:375
专家分:0
注 册:2005-12-21
收藏
得分:0 
受益非浅

今天我看到这里总是不明白

自强不息:)
2006-03-03 18:38
快速回复:[求助] 关于一个语句 谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030744 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved