6. Programmieren in C
6.1. Datentypen
Erklärung der verschiedenen Arten von Speicher
In der Deklaration von Variablen können angeben, welche Art von Speicher gespeichert wird.
Die folgende Tabelle zeigt die Art der Erinnerung, die angegeben werden können.
- Programmcode Speicher (64 KByte). Mit dem Zugriff mithilfe der MOVC @ A + DPTR.
- Adresse Daten direkt an den internen Datenspeicher. Für einen schnellen Zugriff auf Variablen (128 Bytes).
- iData Indirekte Adressierung der internen Datenspeicher. Mit Zugang zu allen internen Speicher (256 Byte).
- BDATA internen Datenspeicher Adresse Bit für Bit. Ermöglicht den Zugriff auf das Gebiet Stück für Stück und Anschrift Byte (16 Bytes).
- xdata externen Datenspeicher (64 KBytes). Sie können über die MOVX @ DPTR Unterricht.
- pdata Paging (256 Byte) externen Datenspeicher. Anfahrt mit dem Unterricht MOVX @ Rn.
Normalerweise, wenn Arbeiten in C ist es nicht notwendig, die Art des Speichers angeben, in welcher der Inhalt von Variablen zu speichern, wird angenommen, dass dies das Werk RAM ist. Aber in dieser Art von Mikrocontrollern, indem er verschiedene Speicherbereiche mit unterschiedlichen beheben, müssen Sie angeben, ob die Variable auf die eine oder andere Erinnerung geben, wie benötigt wird. Standardmäßig wird, wenn nichts ist variabel angegebene zugeordnet ist ein Datenspeicher.
Beispiele:
Daten char Var1;
Zeichencode text [] = "Geben Temperatur:";
unsigned long xdata MyArray [100];
Schwimmer iData x, y, z;
unsigned int pdata Dimension;
unsigned char xdata Vektor [10] [4] [4];
char BDATA Indikator;
Datentypen
Ein Datentyp definiert den Bereich der Werte, die eine Variable in der gesamten Ausführung des Programms und die Anzahl der Bytes Speicher reserviert, um Informationen halten kann.
Datentyp | Bits | Bytes | Range |
Bit * | 1 | | 0 bis 1 |
signed char | 8 | 1 | -128 Bis +127 |
unsigned char | 8 | 1 | 0 bis 255 |
enum | 8 / 16 | 1 oder 2 | -128 Bis +127 oder von -32.768 bis 32.767 |
signed short | 16 | 2 | -32768 Bis +32767 |
unsigned short | 16 | 2 | 0 bis 65535 |
signed int | 16 | 2 | -32768 Bis +32767 |
unsigned int | 16 | 2 | 0 bis 65535 |
unterzeichnet lange | 32 | 4 | -2147483648 Bis 2147483647 |
unsigned long | 32 | 4 | 0 bis 4294967295 |
Schwimmer | 32 | 4 | ± 1.175494E-38 bis ± 3,402823 E +38 |
SBIT * | 1 | | 0 bis 1 |
sfr * | 8 | 1 | 0 bis 255 |
sfr16 * | 16 | 2 | 0 bis 65535 |