Normalerweise müssen wir in C dem Computer den Datentyp in der Variablendeklaration mitteilen. Im folgenden Programm möchte ich zB die Summe zweier Gleitkommazahlen X und Y ausgeben.
#include<stdio.h>
main()
{
float X=5.2;
float Y=5.1;
float Z;
Z=Y+X;
printf("%f",Z);
}
Ich musste dem Compiler den Typ der Variablen X mitteilen.
- Kann der Compiler den Typ nicht selbst bestimmen
X
?
Ja, das kann es, wenn ich das tue:
#define X 5.2
Ich kann jetzt mein Programm schreiben, ohne dem Compiler mitzuteilen, welche Art von X
:
#include<stdio.h>
#define X 5.2
main()
{
float Y=5.1;
float Z;
Z=Y+X;
printf("%f",Z);
}
Wir sehen also, dass die C-Sprache eine Art von Funktion hat, mit der sie den Datentyp selbst bestimmen kann. In meinem Fall wurde festgestellt, dass dies X
vom Typ float ist.
- Warum müssen wir den Datentyp angeben, wenn wir in main () etwas deklarieren? Warum kann der Compiler den Datentyp einer Variablen auf eigene in bestimmen ,
main()
wie es funktioniert in#define
.
#define X 5.2
, X
handelt es sich nicht um eine Variable, sondern um eine Konstante. Sie wird also buchstäblich durch eine Präprozessor-Variable ersetzt, die Sie an einer 5.2
beliebigen Stelle erwähnt haben X
. Sie können nicht neu zuweisen X
.
auto
tatsächlich das, was Sie wollen). Wenn Sie jedoch glauben, dass Sie wissen, was Ihr Code tut, und tatsächlich etwas anderes eingegeben haben, wird bei einer statischen Eingabe wie dieser ein Fehler früher erkannt, bevor er zu einem großen Problem wird. Jede Sprache findet ein Gleichgewicht: statische Typisierung, Typisierungsfehler, dynamische Typisierung. Für einige Aufgaben lohnt sich die zusätzliche Eingabe. Für andere ist es eine Verschwendung.
5.2
Ist adouble
, so rundet das erste Programm die doppelten Literale auffloat
Genauigkeit und fügt sie dann als Gleitkommazahlen hinzu, während das zweite Programm die doppelte Darstellung von 5.1 zurückrundetdouble
unddouble
mit derdouble
Addition zum Wert 5.2 hinzufügt und dann das Ergebnis dieser Berechnung auffloat
Genauigkeit rundet . Da die Rundung an verschiedenen Stellen auftritt, kann das Ergebnis abweichen. Dies ist nur ein Beispiel für die Arten von Variablen, die sich auf das Verhalten eines ansonsten identischen Programms auswirken.