DEV c++, nimmt nicht alle C++ Syntaxe an.... ;(
-
SirLant schrieb:
In "Jetzt lerne ich C" steht auch void main, sogar noch mit der Begründung, dass
man das int main nur bräuchte wenn das programm einen Rückgabewert braucht, weil
es von einem anderen aufgerufen wird.
War daher auch erstaunt weshalb das Buch unter den Buchempfehlungen ist und nicht
ein Wort über die falsche Syntax steht.das ist die falsche Annahme, die sich leider immer noch verbreitet. void main war noch nie von keiner Sprache definition erlaubt fuer C oder C++!
Btw. solltest du deine C Programme nicht mit einem C++ Compiler kompilieren! (der gcc erkennt eigentlich die Programme an der Endung, also fuer C Programme .c nehmen, nicht .cpp das ist fuer C++)
-
#include <stdio.h>
#define TEMPOLIMIT 100;int main(void)
{printf("Die Geschwindigkeitsbegrenzung betraegt hier %i km/h. \n", TEMPOLIMIT);
TEMPOLIMIT = 70;
printf("Gemesen haben ich leider %i km/h. \n", TEMPOLIMIT + 25);
printf("Haben Sie das Schild mit der %i nicht gesehen?\n", TEMPOLIMIT);}
Das klappt nicht , er hat immer was mit:
C:\WINDOWS\Desktop\c\rente.c [Warning] In function `main':
7 C:\WINDOWS\Desktop\c\rente.c parse error before ';' token
9 C:\WINDOWS\Desktop\c\rente.c parse error before '=' token
11 C:\WINDOWS\Desktop\c\rente.c parse error before ';' token
12 C:\WINDOWS\Desktop\c\rente.c parse error before ';' token
-
define ohne semikolon, sagt er doch...
und du musst genauer werden.. und das ist kein c++ ...
-
Da steht dann nach der Makroexpansion
100; = 70;
-
Danke Freunde! Das hilft mir sehr weiter, aber eins wollte ich mal wissen!
Was bedeutet:
#define
constSonst steht das in mein Buch immer sehr erklärt dort, da wurde nur gesagt das die beiden eine Kostante Variable definieren...
-
#define definiert ein Präprozessor-Makro, und const eine Konstante. Keine Ahnung, ob das in deinem Götter-Buch vorkommt, aber normalerweise müsste der Präprozessor schonmal erwähnt worden sein.
#define funktioniert so: Vor der eigentlichen Compilierung läuft der Präprozessor über den Quelltext, registriert alle #define-Direktiven und nimmt danach Textersetzungen im Quelltext vor. In deinem Beispiel wurde zb TEMPOLIMIT als 100; definiert: Der Präprozessor geht jetzt hin und ersetzt blind jedes weitere Vorkommen von TEMPOLIMIT durch 100;, egal ob da Nonsens rauskommt oder nicht.
const dagegen ist ein sogenannter Qualifizierer (qualifier), der sagt, dass eine Variable nur initialisiert, d.h. direkt bei ihrer Definition mit einem Wert versehen werden darf, aber später nicht mehr verändert.
-
<kluger satz>
const hat das gleiche Einsatzgebiet wie define, ist jedoch vorzuziehen, da der Compiler hier die verwendeten Typen und Gültigkeitsbereich besser kontrollieren kann, während es sich bei define um eine Textersetzung handelt, die nicht geprüft wird.const double pi=3.14156 //definiert die Konstante pi vom Datentyp double mit dem Wert 3.14156
</kluger satz>
-
@ spielgrips
nich verzweifeln! ich hab/hatte die selben Probleme mit C++ büchern.
Ich lerne die Sprache auch erst seit 2monaten ungefähr, und nebenbei.
Ein problem ist oft, das nicht drauf hingewießen wird welche
LIBRARY (#include...) benötigt wird damit der Compiler mit nem befehl was anfangen kann. Oder in nem listing fehlt einfach nur ein SEMIKOLON und als anfänger blickt man nicht durch wo der Fehler liegt.
ich lass immer das Grundgerüst das mir DEV++ vorschlägt so stehen (die MAIN-funktion) und passe den SourceCode aus den Büchern an.
Man könnte hier auf der Seite auch mal sowas wie ne Bücherecke einrichten wo sich die Leute über ihre Erfahrungen austauschen können.#include <iostream> #include <stdlib.h> // weitere Includes using namespace std; int main(int argc, char *argv[]) { // CODE // CODE // CODE system("PAUSE"); return 0; }
:p cayamides
-
Danke für dein großes Verständnis, du nimmst mir die Worte aus dem Mund !
Das kann ja sein, das im Buch der alte C Standart beschrieben wird, wie bei html, und daher nicht der C/C++ Compiler nicht denn alten Standart kennt, nur denn neuen ..
( Warum wird iher STANDART in **** dargestellt, ist ja kein schlimmes Wort für eine Schreibweise im Code)
-
Spielgrips schrieb:
( Warum wird iher stan**** in **** dargestellt, ist ja kein schlimmes Wort für eine Schreibweise im Code)
Weil S_T_A_N_D_A_R_T_E_N vor 60 Jahren in Mode waren, heutzutage nimmt man den allgemein gültigen Standard!