我自己写了个程序测试了一下if()括号里面的函数应该是不可以执行的,可是窗口注册类却是
if (!RegisterClass(&wndclass))//如果注册失败则返回0
   return 0;
既然if括号里面的东西是不执行的,那么还应该在if前面再加一条RegisterClass(&wndclass);然后再进行判断阿
请解疑惑?

解决方案 »

  1.   

    if括号里的东西不是没有执行,而是执行了,执行的结果是0而已。用wndclass的地址作为参数去调用函数RegisterClass,返回值是0,1中的0。
      

  2.   

    里面是一个表达式,表达式的值需要通过执行才能得到,所以他是执行了的。if 中的表达式并不一定要求是直接的数据,有的时候是一个复杂的表达式,比如逻辑表达式,甚至还有函数调用,这种情况只有执行之后才知道他的值。============================================================================
    提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
    http://alphasun.betajin.com/   遇到问题可以给我发消息,给我发信息时请附带原帖地址
    DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
      

  3.   

    编译器是这么解释执行的:
    BOOL bResult=RegisterClass(&wndclass);
    if (!bResult)//如果注册失败则返回0
       return 0;