题
我在℃的初学者,以及使用的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()的,实际上冒险超出通常不会产生编译器警告。
不隶属于 StackOverflow