Beunruhigend Umwandlung string zu long long in C

Ich habe Probleme dabei, den atoll-Funktion richtig eingestellt eine lange long-Wert in c ist. Hier ist mein Beispiel:

#include <stdio.h>

int main(void) {
    char s[30] = { "115" };
    long long t = atoll(s);

    printf("Value is: %lld\n", t);

    return 0;
}

Diese Drucke:
Wert: 0

Dieser funktioniert aber:

printf("Value is: %lld\n", atoll(s));

Was ist hier Los?

  • ideone.com/WntSUK Versucht auf beiden IDEOne und mein Rechner keine Probleme? Ist das der gesamte code?
  • das gleiche gilt für mich. gut funktionierte.
  • Welchen compiler, welche version, gibt es irgendwelche Warnungen (-Wall im GCC).
  • Sie fehlt #include <stdlib.h> so das Ergebnis atoll abgeschnitten werden kann.
  • Dank Paul R! Dass das problem behoben.
  • können Sie bitte erklären, das ist eher interessant?
  • ohne ein Prototyp, C Verzug der Rückgabe-Typ int (und Probleme eine compiler-Warnung, die Sie wirklich achten sollten, wenn Sie richtig konfiguriert compile-source-Anweisung in Ihrem Makefile), die auf diesem system ist wahrscheinlich kleiner als long long (in der Tat habe ich alle, aber garantieren, es).
  • richtig.... Danke!
  • Sehen meyumar Antwort unten für die Warnung generiert, wenn die Warnungen sind korrekt konfiguriert-build-Prozess.

InformationsquelleAutor Justin Brown | 2013-03-14
Schreibe einen Kommentar