dev-c++ Anfängerproblem
-
So ich bin blutiger Anfänger mit C wollte aber mit dem standart c anfangen, da c für Mikrocontroller wohl das beste ist.
Da ich auch schon für TP einen dev compiler verwendet habe und es hierbei keine Probleme gab war natürlich die Freue groß als ich gesehen hab, dass es auch einen dev compiler für c gibt... gleich gedownloadet und installiert... habe mal den AOL kurs gestartet und wollte mal mit einem hallo welt programm testen ob das mit dem compiler funktioniert.#include <stdio.h> void main( void ) { printf ("blubblub\n"); }
E:\Dev-Cpp\files\blub1.c In function `main': 6 E:\Dev-Cpp\files\blub1.c [Warning] return type of 'main' is not `int'
kann mir einer des rätselslösung geben?
Vielen Dank im vorraus.
-
void main( void )
so funktioniert das (gemäss Standard) NICHT. Die Lösung findest du ganz sicher
in dem Einsteigerbuch bzw. Tutorial das du zum Lernen verwendest.Wenn das, wider erwarten, genau so drin stehen sollte, schmeiss das Buch/Tutorial
bitte unverzüglich weg und besorg dir was Anderes (Besseres). :p
-
Infernal Hails!
Nun ja, Dev-C++ sagt dir, daß der Typ des Rückgabewertes von main() kein Integer ist. Da laut ANSI nur
[cpp]
int main() // nicht: int main(void)
// oder:
int main(int argc, char* argv[]) // Wenn dein Programm vom OS übergebene Parameter auswerten soll
[/cpp]zulässig sind meckert Dev-C++ zurecht. Also läuft dein Programm mit:
#include <stdio.h> int main() { printf("blubblub\n"); return 0; // gibt 0 ans OS zurück }
Den Rückgabewert könnte man unter DOS z.B. mit der Umgebungsvariable %errorlevel% auswerten.
Viel Erfolg noch,
Swordfish
-
Hallo an alle,
"Hello World" und andere kleinere Progrämmchen liefen schon.
Ich nutze als Einstieg das Buch "Programmieren in C" von Kernighan & Ritchie.
Darin steht, daß (putchar(getchar()!=EOF)) entweder 0 oder eine 1 liefern soll.
Tut es aber in meinem Programm nicht!!!!! Dort bekomme ich das Zeichen, welches ich eingebe. Auch das EOF konnte ich nicht erkennen (in Form einer 0 oder so).Kann sich das jemand erklären und mir vielleicht auch?
Dank und Gruß
seacrash
-
also das Program steht genauso im AOL C-kurs drin
Also hab jetzt nochmal in einem anderen c tutorial nachgelesen.... und da steht das genauso :|
also ich wollt schon das alte c lernen, c++ bringts doch nich wirklich wenn man mikrocontroller programmieren will oder?
geht das normale c nicht mit dev-c++ oder warum steht das die ganzeb zeit anders in den tutorials?
-
seacrash schrieb:
Darin steht, daß (putchar(getchar()!=EOF)) entweder 0 oder eine 1 liefern soll.
Tut es aber in meinem Programm nicht!!!!!Und woran siehst du das?
Mit Sicherheit liefert dieser Ausdruck 0 oder 1, bzw falsch oder wahr. Da != nunmal ein logisches Ergebis liefert, ist ein anderes Ergebnis gar nicht möglich. Ansonsten ist dein Compiler kaputt.Fabian' schrieb:
also das Program steht genauso im AOL C-kurs drin
Ich weiss schon, warum ich mich von AOL verabschiedet habe.
Fabian' schrieb:
Also hab jetzt nochmal in einem anderen c tutorial nachgelesen.... und da steht das genauso :|
Tja, dann ist es auch dort falsch. Der Punkt ist einfach der, dass vom Standard zwei main Varianten garantiert werden:
int main(void) // 1 int main(int argc, char *argv[]) // 2
Alles andere ist implementationsspezifisch und daher nicht zu empfehlen, wenn es keinen triftigen Grund dafür gibt.
Fabian' schrieb:
c++ bringts doch nich wirklich wenn man mikrocontroller programmieren will oder?
Wer sagt das? Du kannst mit C++ genauso hardwarenah programmieren wie mit C. Da gibt es keine Unteschiede. Im Gegensatz dazu bietet aber C++ mehr Möglichkeiten im high-level Bereich, zB OOP. Weshalb wohl einige Leute meinen, das dann low-level nicht mehr möglich sei, was aber völliger Quatsch ist.
-
So habe jetzt das C Einsteigerbuch von Helmut Erlenkötter... echt ein sehr gutes Buch für Einsteiger, auch wenn ich positiv überascht bin, wieviel C von der Grundstruktur mit pascal gemeinsam hat (Pascalfanatiker)
-
Fabian' schrieb:
c++ bringts doch nich wirklich wenn man mikrocontroller programmieren will oder?
Stimmt leider. Beispielsweise kennt der AVR-Port von G++ (C++-Variante con GCC) kein 'new' oder 'delete'. Auch gibt es keine STL oder templates. Das ist ziemlicher Mist und macht C++ für den AVR damit recht unbrauchbar.
-
AVR-Coder schrieb:
Fabian' schrieb:
c++ bringts doch nich wirklich wenn man mikrocontroller programmieren will oder?
Stimmt leider. Beispielsweise kennt der AVR-Port von G++ (C++-Variante con GCC) kein 'new' oder 'delete'. Auch gibt es keine STL oder templates. Das ist ziemlicher Mist und macht C++ für den AVR damit recht unbrauchbar.
Das sind aber Compiler spezifische Beschränkungen und haben mit der Sprache ansich nichts zu tun. Zudem schreibt C++ nicht vor, dass man die STL nutzen muss. Und wenn's kein new oder delete gibt, kann man immer noch auf malloc und free zurückgreifen.