#define & integer |
07.10.2016, 16:14 | Auf diesen Beitrag antworten » | |||||
Robert93 | #define & integer Meine Frage: Hallo Leute, ich bin ein totaler Frischling in Sachen programmierung und habe das Buch "C als erste Programmiersprache" angefangen zu bearbeiten. Zu Beginn habe ich die Datentypen Int, float etc kennengelernt. Jetzt wurde in dem Buch die Konstante #define vorgestellt. Nur den Sinn verstehe ich dabei nicht wirklich. Es war ein Beispielcode dabei:
Ich habe spaßeshalber mal die #define's auskommentiert und mit den Datentypen int und float ersetzt. Siehe da, das Programm funktioniert immer noch einwandfrei. Was also bringt #define denn nun? Meine Ideen: Vielen Dank schonmal im vorraus. |
|||||
|
||||||
07.10.2016, 16:34 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Eine Antwort hier: http://stackoverflow.com/questions/11079...ine-vs-variable Du kannst Werte von #define nicht mehr (evtl. versehentlich) im Programm überschreiben. Außerdem kannst du defines auch im Präprozessor abfragen und z.B. bedingte Kompilierung vornehmen (wenn Windows, binde diese Bibliothek ein, wenn Linux jene). |
|||||
07.10.2016, 16:54 | Auf diesen Beitrag antworten » | |||||
Robert93 | Okay Danke. Ist #define dann nur eine Art Sicherheit um den konstanten Wert nicht zu überschreiben? Weil theoretisch wenn man gut aufpasst könnte man das ja auch mit den int variablen vermeiden oder? Das mit dem Präprozessor ist mit to high.. |
|||||
07.10.2016, 17:02 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Das mit dem Aufpassen ist so eine Sache. Wenn dein Programm nur groß genug wird, bist du vielleicht doch mal unachtsam. Man kann eine Variable auch als const int deklarieren, dann lässt sie sich auf nicht mehr überschreiben. Es bleibt aber eine Variable mit Adresse. Defines sind Textersetzungen, die vor dem Compiler ablaufen. Ich sehe kein Problem darin, Konstanten im C-Code (also ohne #define) zu definieren. |
|||||
Anzeige | ||||||
|
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|