Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » #define & integer » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 4 Beiträge
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.
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..
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).
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:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
/* Datei: zins.c */
#include <stdio.h>

//#define LAUFZEIT     10
//#define GRUNDKAPITAL 1000.00
//#define ZINS         5.0

int LAUFZEIT = 10;
float GRUNDKAPITAL = 1000.00;
float ZINS = 5.0;

int main (void)
{
   int jahr;            /* Vereinbarung von jahr als int-Variable */
   double kapital = GRUNDKAPITAL;
   
   printf ("Zinstabelle fuer Grundkapital %7.2f EUR\n",                     
            GRUNDKAPITAL);
   printf ("Kapitalstand zum Jahresende:\n");
   for (jahr = 1; jahr <= LAUFZEIT; jahr = jahr + 1) 
   {
      printf ("\nJahr: -\t", jahr);
      kapital = kapital * (1 + ZINS/100.);
      printf ("Kapital: %7.2f EUR", kapital);
   }
   printf ("\n\nAus %7.2f EUR Grundkapital\n", GRUNDKAPITAL);
   printf ("wurden in %d Jahren %7.2f EUR\n", LAUFZEIT, kapital);
   return 0;
}



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.