Variable Control für C-Programmierung

In der C-Programmierung, können Sie Schlamassel mit der Variablen in Ihrem Code, indem sie es in eine andere Art zu ändern, ist es unter einem neuen Namen zusammen, oder einen Zauber auf den variablen Gießen Ihre Bedürfnisse, gütig oder nicht zu treffen.

Menu

Typisierungen in Unglauben

Wann ist eine Variable vom Typ float kein Schwimmer? Wann ist es in ein int, natürlich typisieren. Dieser Trick wird möglich gemacht in C durch die Typumwandlung verwendet wird. Beispielsweise:

(Int)Schuld

In der vorangehenden Zeile, die Gleitkommavariable Schuld wird in einen int Wert typisieren. Der int in Klammern weist den Compiler den Wert zu behandeln Schuld als Integer.

Warum sollte jemand das tun wollen?

Denn manchmal erfordert eine Funktion einen bestimmten Variablentyp und der Typ ist nicht verfügbar. Anstatt konvertieren und mehrere Variablen-Typen in einem Programm jonglieren, können Sie einfach typisieren eine Variable in den Typ, den Sie sich wünschen. Es ist nicht ein üblicher Trick, aber es ist oft notwendig, wie gezeigt in das nicht richtig ist.

DAS IST NICHT RICHTIG

# include int main () {int a, b-Float-c-printf ( "Geben Sie den ersten Wert:") -scanf ( "% d", a) -printf ( "Input der zweite Wert:") -scanf ( " % d ", b) -C = a / b-printf ("% d /% d =% .2f n ", a, b, c) -return (0) -}

Übung 1: Geben Sie den Quellcode aus, die in Ihrem Editor ist nicht richtig. Erstellen und ausführen.

Hier ist ein Probelauf mit dem Eingang in fett:

Geben Sie den ersten Wert: 3Geben Sie den zweiten Wert: 23/2 = 1,00

Offensichtlich ist es falsch, dass 3 # 247- 2 würde irgendwie funktionieren bis 1,50. Wenn der Computer sagt, dass es 1,00 ist, muss der Computer korrekt sein.

Vielleicht ist der Computer nur verwirrt, weil in Zeile 12 des Quellcode, zwei int Werte unterteilt sind, und das Ergebnis wird mit einem Schwimmer zugeordnet. Das funktioniert nicht ganz, aber, weil durch eine ganze Zahl eine ganzzahlige Teilungs in C eine ganze Zahl als Ergebnis ergibt.

Der Wert 1 ist der nächste Integer-Wert auf 1,50. Also auch wenn der Computer falsch ist, es tut genau das, was es gesagt wurde, zu tun.

Übung 2: Ändern Sie den Quellcode, Ändern Zeile 12 zu lesen

c = (float) a / (float) b-

Speichern Sie die Änderung. Erstellen Sie und führen Sie die gleichen Werte verwendet, wie gerade gezeigt. Hier ist die neue Ausgabe:

Geben Sie den ersten Wert: 3Geben der zweite Wert: 23/2 = 1,50

Besser. Das ist, weil Sie Variablen typisieren ein und b in der Gleichung erlaubt, vorübergehend den Compiler sie als Gleitkommazahlen zu behandeln. Daher ist das Ergebnis, was es sein sollte.

So erstellen Sie neue Dinge mit typedef

Sie können mit dem Schlüsselwort typedef bei Lasten Schwierigkeiten geraten. Es kann von ihrer konsequenten selbst in allerlei Unfug normalen C Worte und Operatoren werfen.

Die Gefahren des TYPEDEF

# include typedef int stinkende-stinkende main () {stinkende a = 2-printf ( "Jeder weiß, dass") -printf ( "% d +% d =% d n", a, a, a + a) -return (0) -}

In The Perils of typedef, die typedef-Anweisung in Zeile 3 definiert das Wort stinkig das gleiche wie das Schlüsselwort int sein. Überall können Sie int im Code verwenden, können Sie das Wort stinkende stattdessen verwenden können, wie in den Zeilen 5 und 7 gezeigt.

Übung 3: Verwenden Sie den Quellcode von The Perils of typedef ein neues Programm, was zeigt, dass eine stinkende Variablentyp ist das gleiche wie ein int zu erstellen. Erstellen und ausführen.

Zugegeben, das Beispiel in der Perils of typedef ist eher silly- keine ernsthafte Programmierer, ein richtiges Programm wie das einrichten würde. Wo typedef verwendet wird am häufigsten ist es, Strukturen zu definieren. Die typedef Aussage hilft, die chunkiness dieser Tätigkeit zu reduzieren.

Erstellen einer Struktur der traditionellen Weise zeigt, wie verschachtelte Struktur Betrieb arbeitet, da die Kenntnis der Strukturen:

Erstellen einer Struktur, die die traditionelle Art und Weise

struct id {char erste [20] -char letzten [20] -} - struct Datum {int Monat-int Tag-int Jahr -} - struct menschlichen {struct id name-Strukt Datum Geburtstag -} -

Mit typedef eine Struktur zu definieren zeigt, wie die Erklärungen erfolgen, wenn Sie die Strukturen zu typedef waren:

VERWENDUNG TYPEDEF DEFINIEREN STRUKTUR

typedef struct id {char erste [20] -char letzten [20] -} personal-typedef struct {int Datum Monat-int Tag-int Jahre} Kalender-Strukt menschlichen {persönlicher Name-Kalender Geburtstag -} -

In diesem Eintrag wird die Struktur-ID auf den Namen persönlichen typedef'd. Das ist keine Variable Namen- es ist ein typedef. Es ist die gleiche wie zu sagen, # 147-Alle Verweise auf struct-ID sind jetzt die gleiche wie der Name persönliche # 148.

Ebenso wird die Struktur Datum Kalender typedef'd. Schließlich wird in der Erklärung der Struktur menschlicher werden die typedef-Namen anstelle der komplexeren Struktur Definitionen verwendet.

Eine geschachtelte Struktur

# include # include int main () {struct Datum {int Monat-int Tag-int Jahr -} - struct menschlichen {char name [45] -struct Datum Geburtstag -} - struct menschlichen president-strcpy (president.name "George Washington ") - president.birthday.month = 2-president.birthday.day = 22-president.birthday.year = 1732-printf ("% s wurde geboren am %d/%d/%dn",president.name,president.birthday.month,president.birthday.day,president.birthday.year)-return(0)-}

Übung 4: Ersetze das Name Mitglied in der menschlichen Struktur in einer verschachtelten Struktur mit einer verschachtelten Struktur. Name, der Struktur-ID und haben es zwei Elemente enthalten, char-Arrays, erste und letzte, zur Speicherung eines individuellen Vor- und Nachnamen.

Wenn Sie alles richtig machen, wird der Verweis auf den Namen des Präsidenten, die Variablen president.name.first und president.name.last. Seien Sie sicher, dass Werte für diese Variablen im Code zuweisen und die Ergebnisse anzuzeigen.

Übung 5: Ändern Sie den Quellcode aus dem Projekt, das Sie in Übung erstellen 4 typedef zu verwenden, wie gezeigt in Verwendung typedef So definieren Sie eine Struktur. Erstellen und ausführen.

Es kann argumentiert werden, dass typedef nicht Ihren Code deutlich mehr machen, als man einfach Sie gute Variablennamen verwendet und gut formatierten Text. Zum Beispiel kann man nicht einfach verwenden typedef, weil Sie nicht haben wollen, sich daran zu erinnern, was Sie definiert haben. Aber Sie werden andere Code auftreten, die typedef verwendet. Lassen Sie es nicht ausflippen.

Der wahre Vorteil der Verwendung von typedef mit einer Struktur ist, möglicherweise, dass es erspart Ihnen das Wort struct zu oft eingeben.

Menü