Viual C++条件语句中的实参左写
学过编程的都知道,程序设计中只有三大控制结构,即顺序、循环和条件。任何的程序设计都离不开这三种结构,本次我只介绍一个关于条件语句中的小技巧——实参左写。下面以Visual C++ 6.0中的if语句为例进行说明。
现在我们用MFC来编写一个简单的画图程序,要求鼠标左键按下时,拖动鼠标,工作区即可画出鼠标的轨迹,鼠标左键松开时,停止作图。下面是我设计的各模块的代码:
首先,在View类中添加三个成员函数OnLButtonUp,OnLButtonDown,OnMouseMove,同时添加两个CPoint类的私有成员m_MyPoint和m_oldPoint,再添加一个BOOL型变量m_DownOrUp。
OnLButtonUp函数模块的代码如下:
m_DownOrUp=FALSE;
View构造函数的代码如下:
m_MyPoint=0;
m_oldPoint-0;
m_DownOrUp=FALSE;
OnLButtonDown函数模块的代码如下:
m_DownOrUp=TRUE;
m_MyPoint=point;
m_oldPoint=point;
OnMouseMove函数模块的代码如下:
CClientDC dc(this);
CPen MyPen(PS_DASHDOTDOT,1 ,#0000ff);
CPen *oldPen=dc.SelectObject(&MyPen);
if(m_DownOrUp=TRUE)
{
dc.MoveTo(m_MyPoint);
dc.LineTo(point);
m_MyPoint=point;
}
做完了上面的工作,心里很高兴的就去运行了,运行后鼠标没有按下客户区也画鼠标轨迹线,考虑后,就去看看是不是哪块代码写错了,可是翻来覆去怎么也没发现哪有错误,最后把每行代码都仔细都审查了一遍,费了好大力气才发现if的条件写错了,把"=="写成了"=",我们换过来想,假如我们把TRUE写在前面,如果等号写成赋值符号,编译器就会报错,我们也会及早的发现问题,会给软件开发过程节省很大的时间和物力。
之所以这样写,是因为这两个符号有完全不同的意思,一个等号就是赋值的意思,把右边的值赋给右边,而在这里实参是不可以放在左边的;而两个等号表示对比,看是否相等,实参可以放在左边。
补充:软件开发 , Vc ,