Frage

Ich bin ein Anfänger in C, und mit Turbo C ++ Compiler (16 Bit).

In der Software schreibe ich, die maximale Antwort ist etwa 32000. Wenn ich eine Nummer größer als die will, ich long int verwenden.

Wenn ich das folgende Programm ausführen:

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

Dann bekomme ich einen Fehler, dass der konstante Wert ist lange in Funktion main().

Wie kann ich eine Antwort mehr, dass 32000 und diesen Fehler loszuwerden? auch nw i% ändern d% ld und verwenden 40000l bt, wenn ich dann unsigned integer verwenden auch muss ich mit 40000 'l' verwenden // ??

War es hilfreich?

Lösung

Verwenden% ld in printf für die lange int. % D ist für int, die nur 16 Bit in Ihrem Compiler hat. Und für die Fehlermeldung, die Verwendung x = 40000l.

Andere Tipps

Ändern lange nicht signiert, 40000 werden in unsigned int passen.

Angenommen, Sie sind auf dem Fenster, die beste Lösung für dieses Problem ist es, eine 32- oder 64-Bit-Plattform zielen. 16-Bit-Programme werden nicht einmal auf 64-Bit-Versionen von Windows ausgeführt werden; Sie sollten wirklich aktualisieren.

Microsoft hat eine kostenlose Version von Visual Studio: Visual C ++ Express Edition . Dies ist eine ausgezeichnete Wahl auch, weil es mit einem vollen IDE kommt.

Gcc ist auch für Fenster in Form von Mingw zur Verfügung. Leider mingw selbst entbindet nicht ready-to-use-Compiler, aber andere tun, wie TDM .

Bürsten Vielleicht bis auf variadische Formatierung helfen könnte :) Bis Sie (oder die printf () Subsystem) wird tatsächlich zu erweitern variadische Argumente , dessen davon aus, dass Sie wissen, was sie geben sind.

Dies gilt nicht nur für printf, aber jede andere Funktion, die va _ * () oder v * printf () bei der Erörterung printf beschäftigt. Verlieren Sie nicht den Überblick über Ihre Art.

Auch im Auge behalten Signedness unerwartete Ergebnisse zu vermeiden.

Mit anderen Worten, durch die Zeit, rufen Sie printf (), oder irgendetwas anderes ein Elipsis , sicher sein, was Sie sind vorbei. Dies ist nicht auf printf begrenzt (), in der Tat darüber hinaus wagen oft nicht Compiler-Warnungen erzeugen.

scroll top