比如 int a;通过某种方法可以判断出a是有符号的,就是可以是正的也可以是负的。而 unsigned char c;就会判断出之能是正值。
        我是在vC下调试的,我觉得这可能跟编译器有关。
        请问大家,有没有好的办法呢?

解决方案 »

  1.   

    无法判断。long a=-100;
    ungined long* p=(unsigned long*)&a;你看看p[0]是多少。
      

  2.   

    这个怎么看,用printf打印?
    还要加格式符的阿,我用%d打印还是 -100
      

  3.   

    #define M -1//定义一个负数
    unsigned char a;
    a=M;
    if(a<0) printf("符号数");
    else printf("无符号数");
      

  4.   

    先把待检查是否符号数的变量a里面的值保存到一个int或long 临时变量b里面
    接着给这个变量赋一个负数值,接着检查正负号
    a=(a的变量类型)b