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

长整数问题

  •  0
  • Kraken  · 技术社区  · 16 年前

    我是C初学者,使用Turbo C++编译器(16位)。

    long int .

    #include <stdio.h>
    void main()
    {
        long int x;
        x=40000;
        printf("%d", x);
    }
    

    然后我得到一个错误,常量值在函数中很长 main() .

    我怎样才能得到一个超过32000的答案并消除这个错误呢? 另外,我将%d更改为%ld,并使用40000L bt当我使用无符号整数时,那么我还需要使用带40000/??

    4 回复  |  直到 16 年前
        1
  •  6
  •   Secure    16 年前

    在printf中使用%ld表示长int。%d表示编译器中只有16位的int。对于错误消息,使用x=40000L。

        2
  •  0
  •   Martin    16 年前

    将long改为unsigned,40000将适合unsigned int。

        3
  •  0
  •   Eamon Nerbonne    16 年前

    Microsoft提供了Visual Studio的免费版本: Visual C++ Express Edition

    Gcc也可以以Mingw的形式用于windows。不幸的是,mingw本身并没有发布现成的编译器,但是其他的编译器会发布,比如 equation.com TDM .

        4
  •  0
  •   Tim Post Samir J M Araujo    16 年前

    variadic formatting 可能有帮助:)当您(或printf()子系统)真正开始扩展时 variadic arguments ,假设你知道他们是什么类型。

    signedness 以避免意外的结果。

    换句话说,当您调用printf()或其他任何接受 elipsis ,确定你经过的是什么。这并不局限于printf(),事实上,超出这个范围通常不会产生编译器警告。

    推荐文章