typedef 8 / 16 / 32bit
-
mit typedef für man eine Art alias namen für etwas ein - statt immer
struct Azu schreiben kann man dann nur noch TYP_A schreiben:
typedef struct A { int A; } ATYP; ATYP x; // C Compiler ist zufrieden
-
erst musst du herausfinden wieviel Bit ein Byte hat
- dann kannst du mit sizeof herausfinden welcher typ wirklich 64 Bit hatz. B.:
cout<<sizeof(long int)<<endl;
-
Du musst dein Programm ja eh neu compilieren, und wenn du 64 Bit brauchst machst du das eben so:
namespace Types { #ifdef MY_64_BIT_INDICATOR typedef Integer64 int; typedef UInteger64 unsigned; #elseif typedef Integer64 long; typedef UInteger64 unsigned long; #endif }
-
Vertexwahn schrieb:
typedef struct { int a, b, c; } bla;also ist das C und das andere C++?
typedef_16
-
Sorry sollte bei der zweiten Präprozesseranweisung nur #else heißen.
-
beides wird von einem C++ Compiler übersetzt - nur in C macht man diese für einen C++ Programmierer umständliche Art und Weiße der Deklartion/Definition von Strukturen
-
Und die Typen natürlich anderst herum, bin grade etwas verwirrt

-
oder ganz extrem mit bitfeldern und operator = vlt.
lol
-
ok, dann fass ich mal zusammen:
typedef struct { ... } bla; struct bla { ... };beides erfüllt exakt den selben zweck?
typedef_16
-
grob gesagt: in C++ ja - in C nein
-
OMFG schrieb:
Storm.Xapek.de schrieb:
Ich versteh die frage nicht ganz du meinst wohl
char a; //8bit, aber für zeichen nicht für interger short int b; // 16bit int c; //32bit float d; //auch 32 aber für kommazahlen double e; //64bit für kommazahlenFalsch, außer char.
Nunja, genau genommen ist keines korrekt. C++ legt ja keine konkreten Grössen der Typen fest. Auf gängigen Multimedia Systemen hängen diese vom verwendeten Datenmodell ab, wie zB ILP32 oder LLP64. Kürzlich wurde aber eine Möglichkeit hier besprochen, wie man solche Typen ohne externe Abhängigkeiten und ohne umständliche Präprozessor Unterscheidungen trotzdem bekommen kann.