您的位置:程序门 -> vc/mfc -> 基础类



还是静态变量的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


还是静态变量的问题[已结贴,结贴人:]
发表于:2007-04-25 20:10:26 楼主
我看很多书上说win32   api的句柄类似于指针这种类型,也是指向一种内存资源的,那么在一个窗口函数一开始:   static   hrgn   hrgnclip   ;   申明一个区域的句柄,注意我是声明的,没有让他指向一个创建的句柄,我的问题是这个hrgnclip   有初始值吗?
  如果我在声明以后马上进行一个判断如if   (hrgnclip) dosomething,那么会不会因为没有没有指向任何创建的句柄而发生未知错误呢?
  如果 把static   hrgn   hrgnclip   ;换成static   char*hrgnclip;也进行if   (hrgnclip) dosomething;的判断又会是怎么样呢?
  我只是知道声明static   int   hrgnclip   ;这个hrgnclip有初始值就是0,可是以上这两种情况呢???
发表于:2007-04-25 20:19:151楼 得分:0
任何变量都一样,没有初始化其值是未知的、无效的、不能使用的,使用了会出问题的。一般编译的时候就有警告。
发表于:2007-04-25 21:40:442楼 得分:0
我测试的结果是声明静态win32句柄变量,其值为0或者空.                  

                                声明静态指针变量,其值为0或者空.

                                声明静态整形变量,cout其值为0;

                                声明静态实形变量,cout其值为0;

                                声明静态字符型变量,cout其值为a;

                                声明静态类变量,如果此类无默认构造函数,编译错误,如果有默认构造函数,程
                                序正常不报告错误.
                               
                              声明静态结构体变量,如果此结构体无默认构造函数,编译错误,如果有默认构造函数,程序正常不报告错误.
          我说的都是只声明这些变量测试的结果,但不知道为何,请c++高人指点了(工具用的vc6.0-sp6)版本的

                                                                                                                                                                               
                           


快速检索

最新资讯
热门点击