我在℃的初学者,以及使用的Turbo C ++编译器(16位)。

在我写的软件,最大的回答是大约32000。如果我想比大的数字,我用long int

如果我执行下面的程序:

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

然后,我得到一个错误,该恒定值是在功能main()长。

我怎样才能得到一个答案多于32000,远离错误的? 也NW I改变%d到%LD和使用40000L BT当我使用无符号的整数还然后我需要使用 'L' 与40000 // ...

有帮助吗?

解决方案

使用%LD中的printf为长整型。 %d是INT只在你的编译器16位。而对于错误消息,使用X = 40000L。

其他提示

长变化到无符号,40000将适合在无符号整型。

假设你在窗户,该最佳的解决方案是针对一个32位或64位的平台。 16位程序甚至不会在Windows的64位版本上运行;你应该升级。

微软的Visual Studio的免费版本:的Visual C ++速成版。这是一个很好的选择还因为它带有一个完整的IDE。

的gcc也可用于在MINGW的形式的窗口。不幸的是,MinGW的本身不释放准备使用的编译器,但别人做,如的 equation.com TDM

也许刷牙上可变参数格式可以帮助:)通过你的时间(或printf()的子系统)实际上得到扩大可变参数的,它假设你知道什么类型的他们是

讨论的printf时,这不仅采用VA _ *()或v * printf的任何其他功能()无二的printf,但是。不要失去你的类型的轨道。

另外,跟踪符号性以避免意外的结果。

换句话说,通过一次调用printf()的,或其他任何受理省略号,一定要传递什么样的。这不限于printf()的,实际上冒险超出通常不会产生编译器警告。

scroll top