以下代码中
char *inArr, unsigned int DanWh;
unsigned   char DANWEIL,DANWEIH;DanWh=65534;
DANWEIL=LOBYTE(DanWh); 
DANWEIH=HIBYTE(DanWh);执行完后,各变量数值如下:
DanWh=-2
DANWEIL=254
DANWEIH=255现在的问题是:
1、char *inArr, unsigned int DanWh;这个写法好象不正确,为什么编译的时候没有报错?2、char *inArr, unsigned int DanWh;这个写法好象不正确,这个 DanWh变量在这种情况下到底是被定义成了什么类型。3、如果DanWh=65534;被定义成了char型,这个DanWh=65534;为什么还可以正常执行?
 

解决方案 »

  1.   

    unsigned int DanWh;
    红色的就是它的类型
      

  2.   

    每行定义一个变量是推荐的用法:
    char *inArr;
    unsigned int DanWh;
    unsigned char DANWEIL;
    unsigned char DANWEIH;
      

  3.   

    1,2报错3.数据被阶段为char赋给DanWh
      

  4.   

    那是你错误级别设置的太低,至少报了warning吧!warning你也不能忽略,你必须看看到底在警告你什么。你这样写显然是错误,vc6不抱错不是证明他正确
      

  5.   

    报告大家  0 ERROR  0 WARNING.
      

  6.   

    如何能查看一下,这个DanWh被定义成了什么类型?
      

  7.   

    应该会有Warning,难道你忽略了Warning了?
    VC6下的警告:F:\MYPROJECTS\D\D.cpp(33) : warning C4518: 'unsigned int ' : storage-class or type specifier(s) unexpected here; ignored
    F:\MYPROJECTS\D\D.cpp(33) : warning C4228: nonstandard extension used : qualifiers after comma in declarator list are ignored
    F:\MYPROJECTS\D\D.cpp(33) : warning C4101: 'DanWh' : unreferenced local variable
    F:\MYPROJECTS\D\D.cpp(33) : warning C4101: 'inArr' : unreferenced local variable
    F:\MYPROJECTS\D\D.cpp(34) : warning C4101: 'DANWEIL' : unreferenced local variable
    F:\MYPROJECTS\D\D.cpp(34) : warning C4101: 'DANWEIH' : unreferenced local variable
      

  8.   

    换VC10吧,VC6真的过时了。
    抱歉,我1楼的回复没有看仔细。
    VC10下直接报错不让通过的。