在OS X C ++上是char签名还是未签名

时间:2014-03-15 05:49:07

标签: c++ macos

OS X上是否签名或未签名。

我将以下代码段放在一起进行测试,但是想知道如何确定?

char a(0x80);           //fill most sig bit 
unsigned char b(0x80);  //fill most sig bit

cout<<"char ";
(a==b)? cout<<"is not" : cout<<"is";    //compare most sig bits in diff't chars
cout<<" signed\n";

结果是:char is signed

我想知道如何在没有特效代码的情况下找到它。

1 个答案:

答案 0 :(得分:1)

检查std::numeric_limits<char>::is_signed

的值
#include <iostream>
#include <limits>

int main() {
  std::cout << "char "
            << (std::numeric_limits<char>::is_signed ? "is" : "is not")
            << " signed.\n";
  return 0;
}