Wieso wird dieser Wert 0?
-
soweit ich das weiß ist long long aber nicht vom Standard definiert. Sofern das Programm aber eh nur für dieses Betriebssystem mit dem Compiler ist, ist das aber egal.
-
vvv schrieb:
soweit ich das weiß ist long long aber nicht vom Standard definiert. Sofern das Programm aber eh nur für dieses Betriebssystem mit dem Compiler ist, ist das aber egal.
Ja, long long gibt es nur für GCC.
Macht aber nichts, da GCC auch unter Windows läuft.
-
C Anfänger schrieb:
Ja, long long gibt es nur für GCC.
long long signed int
undlong long unsigned int
gibts auch für MSVC++. Damit deckt man schon einen grossen Teil ab.Nichtsdestotrotz sollte man sich nach was Anderem umsehen, wenn man wirklich portabel bleiben möchte.
-
Nexus schrieb:
C Anfänger schrieb:
Ja, long long gibt es nur für GCC.
long long signed int
undlong long unsigned int
gibts auch für MSVC++. Damit deckt man schon einen grossen Teil ab.Nichtsdestotrotz sollte man sich nach was Anderem umsehen, wenn man wirklich portabel bleiben möchte.
Was würdest du als Alternative zu long long empfehlen?
Ich brauche diese Typengröße nämlich wirklich.
-
vvv schrieb:
soweit ich das weiß ist long long aber nicht vom Standard definiert. Sofern das Programm aber eh nur für dieses Betriebssystem mit dem Compiler ist, ist das aber egal.
also bei mir ist long long int schon teil des std...
ISO/IEC 9899:1999 (5.2.4.2.1 Sizes of integer types <limits.h>) schrieb:
— minimum value for an object of type long long int
LLONG_MIN -9223372036854775807 // −(263 − 1)
-
C Anfänger schrieb:
Was würdest du als Alternative zu long long empfehlen?
uint64_t
aber das ist erstmal eh nur ein typedef auf long long.
Nichtsdestrotrotz solle man bei explorativen primzahligen Dingen immer Typen nehmen, die die Bittigkeit mitangeben, damit man lustige Tricks einbauen kann, die vom Typ abhängen, denke ich.
-
%lld wird aber mit dem gcc port unter Windows nicht funktionieren (es sei denn da hat sich was geändert). Da müsste man dann %I64 verwenden.
-
C Anfänger schrieb:
Was würdest du als Alternative zu long long empfehlen?
Ich brauche diese Typengröße nämlich wirklich.Ich hätte da an irgendeine BigInteger-Bibliothek gedacht (nichts Konkretes), aber ohne Operatorüberladung weiss ich nicht, ob man das möchte. Vielleicht reicht
long long
bzw.unsigned long long
ja...no_o_o_ schrieb:
also bei mir ist long long int schon teil des std...
Stimmt, in C99 gehört der Typ zum Standard. Anders bei C89 oder C++.
-
Tim schrieb:
%lld wird aber mit dem gcc port unter Windows nicht funktionieren (es sei denn da hat sich was geändert). Da müsste man dann %I64 verwenden.
Also ich benutzte %lld jetzt mit der GCC 3.5 Version unter Windows schon ne ganze Weile und printf kann den Wert zumindest richtig anzeugen.
-
volkard schrieb:
uint64_t
aber das ist erstmal eh nur ein typedef auf long long.So typedef- Header gibt's ein paar, aber die unterscheiden sich auch wieder voneinander.
Welcher ist denn verbreitungstechnisch zu empfehlen? Und ja, typedefs ist eine Sache, die Typenauswertung bei Formatstrings eine Andere.
Bislang ist mir da nichts echt Überzeugendes untergekommen, das Überraschungen beim printf() ausschließt. Hat da jemand an Tip?