-
Fragen zu C
Ich hab 2 Fragen zu C:
1.
Zitat:
#define NZAHLEN 10
Das stand im C-Tutorlial. Meine Frage ist, ob #define bedeutet, dass jetzt eine Definition kommt in diesem Fall NZAHLEN 10?
2. Was bedeutet int? Ich hab im C-Tutorial eine Antwort gesucht, aber irgendwie versteh ich die nicht...
Würde mich über Anworten freuen!
Grüsse!
-
Es ist ganz einfach: #define sagt dem Präprozessor, dass im Quellcode jedes Wort NZAHLEN durch eine 10 ersetzt wird, bevor dieser an den Compiler übergeben wird.
Ein int ist ein Variablentyp, der je nach Compiler/Prozessorarchitektur verschiedene Zahlenbereiche abdecken kann, beim AVR z.B. ist er 16 Bit lang, geht also von -2^15 bis +2^15-1. Variablen sind eine Art Platzhalter für Zahlen, die zur Laufzeit des Programms in die Variable reingeschrieben werden können.
MfG Mark
-
Danke für die schnelle Antwort!
Also ist char (8) short (16) long (32) long long (64) in int (8, 16, 32, 64) definert?
-
Nicht ganz, int ist ein eigenständiger Variablentyp, genauso wie char, short, long ... . Nur ist die Größe von int durch das Zielsystem und den Compiler festgelegt, während die meisten anderen Datentypen unabhängig davon immer die gleiche Größe haben.
-
@p_mork: Ich staune über diese tolle Erklärung! Einfach und 100%ig korrekt. Da können sogar "alte Hasen" nochmal drüber nachdenken. Vielen Dank!
-
der tms320 dsp hat 16 bit char und int ^^
-
DSPs sind da eine Ausname, weil einige von ihnen 8 bzw 16 bit nicht verarbeiten oder aus dem Speicher laden/speichern _KÖNNEN_. Deshalb ist der Compiler gezwungen, 16 oder 32 bit zu nehmen. Ich nehme an, dass es auch bei den TMS320 der Fall ist.
-
OK.
Dann versteh ich das jetzt was int bedeutet! Danke!
Grüsse!
-
Exakt, p_mork. Wollten mir zwei Kollegen (die schon länger damit arbeiten) erst auch nicht glauben, aber es ist wirklich so, dass man mit 16 bit chars rechnen kann*g* auch wenn unsigned int "sauberer" ist...
-
unsigned int oder 16 bit chars - das ist irrelevant. Wenn es das selbe ist, ist weder das eine, noch das andere "sauberer" - auch wenn einige Kollegen das anders _fühlen_.
Schau mal in die Header - da ist es eh nur ein define.