长整数问题 我是C初学者,使用Turbo C++编译器(16位)。

长整数问题 我是C初学者,使用Turbo C++编译器(16位)。,c,types,turbo-c++,C,Types,Turbo C++,在我正在编写的软件中,最大答案约为32000。如果我想要一个比这个大的数字,我就使用long int 如果我执行以下程序: #include <stdio.h> void main() { long int x; x=40000; printf("%d", x); } #包括 void main() { 长整数x; x=40000; printf(“%d”,x); } 然后我得到一个错误,即函数main()中的常量值很长 我怎样才能得到一个超过32000的

在我正在编写的软件中,最大答案约为32000。如果我想要一个比这个大的数字,我就使用
long int

如果我执行以下程序:

#include <stdio.h>
void main()
{
    long int x;
    x=40000;
    printf("%d", x);
}
#包括
void main()
{
长整数x;
x=40000;
printf(“%d”,x);
}
然后我得到一个错误,即函数
main()
中的常量值很长

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

更改为无符号,40000将适合无符号整数。

将long更改为无符号,40000将适合无符号整数。

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

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

假设您在windows上,最好的解决方案是针对32位或64位平台。16位程序甚至不能在64位版本的windows上运行;你真的应该升级

Microsoft有Visual Studio的免费版本:。这也是一个很好的选择,因为它附带了一个完整的IDE


Gcc还可以以Mingw的形式用于windows。不幸的是,mingw本身并没有发布即用编译器,但其他编译器也有发布,如或。

假设您在windows上,最好的解决方案是针对32位或64位平台。16位程序甚至不能在64位版本的windows上运行;你真的应该升级

Microsoft有Visual Studio的免费版本:。这也是一个很好的选择,因为它附带了一个完整的IDE

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

也许复习一下可能会有所帮助:)当您(或printf()子系统)实际开始扩展时,它假设您知道它们是什么类型

这不仅适用于printf,还适用于在讨论printf时使用va_*()或v*printf()的任何其他函数。不要忘记你的类型

此外,请跟踪以避免意外结果

换句话说,当您调用printf()或任何其他接受的函数时,请确保您正在传递什么。这并不局限于printf(),事实上,超出这一范围的冒险通常不会产生编译器警告。

也许温习一下可能会有所帮助:)当您(或printf()子系统)实际开始扩展时,假设您知道它们是什么类型

这不仅适用于printf,还适用于在讨论printf时使用va_*()或v*printf()的任何其他函数。不要忘记你的类型

此外,请跟踪以避免意外结果


换句话说,当您调用printf()或任何其他接受的函数时,请确保您正在传递什么。这不限于Prtff(),事实上超出了通常不会产生编译器警告的范围。

为什么使用Turbo C++?有许多更好的,免费的C和C++编译器,比它,将支持32位和更大的整数。I’我想换个别的!我总是说应该有一个涡轮-C++标签,它肯定每年都会出现一次。为什么你使用Turbo C++?有许多更好的,免费的C和C++编译器,比它,将支持32位和更大的整数。I’我想换个别的!我一直说应该有一个turbo-c++标记,它肯定会在一年左右出现一次。bt long有什么问题?您指定了“long int x”,并用“%d”指定了int的默认大小,Turbo C的16位。这是因为如果您将a long的值设置为70000,并尝试使用%d打印,则会忽略高16位以显示4464而不是70000。bt long有什么问题?您指定了“long int x”,并使用“%d”指定了int的默认大小,对于Turbo C,这是16位。这是在抱怨,因为如果您将a long的值设置为70000,并尝试使用%d打印,则会忽略高16位以显示4464而不是70000。因此,我需要使用“L”来显示每个tym??即使我使用无符号长整数??或者它只是长整数?它是长整数。对于无符号长整数,使用40000UL。更好的办法是,按照建议使用另一个编译器。了解不同的整数类型,有符号和无符号,保证的位数,提升规则,以及所有相关的东西,比如printf格式说明符。那么我需要的每个tym都使用“L”??即使我使用无符号长整数??或者它只是长整数?它是长整数。对于无符号长整数,使用40000UL。更好的办法是,按照建议使用另一个编译器。并了解不同的整数类型,有符号和无符号,保证位数,提升规则,以及所有相关的东西,如printf格式说明符。