代码之家  ›  专栏  ›  技术社区  ›  doron

C′和C++中的差异(′x)[复制]

c c++
  •  7
  • doron  · 技术社区  · 14 年前

    可能重复:
    Why are C character literals ints instead of chars?

    sizeof('x') 返回4但是 sizeof('x') 在C++中返回1?

    C++通常只不过是C的超集,那么为什么这两个结果会发散呢?

    只是进一步澄清一下。这看起来像是标准委员会有意的举动,我想如果没有充分的理由,改变“x”的大小是不可能的。我对原因很感兴趣。

    3 回复  |  直到 7 年前
        1
  •  17
  •   Cubbi    14 年前

    引用C++标准ISO1488∶2003,附录C.1.1条款2.132

    改变

    :这是改进的重载函数参数类型匹配所必需的。例如:

    int function( int i );
    int function( char c );
    function( ’x’ );
    

    此调用最好匹配函数的第二个版本,而不是第一个版本

        2
  •  7
  •   kenm    14 年前

    C++不是C的超集,特别是如果使用“当前”版本,编译器在C++ 0x模式下会在C99代码上窒息。

        3
  •  5
  •   James Curran    14 年前