C Programmierung Hello world klappt nicht siehe Foto?

 - (Computer, Informatik, Java)

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Wenn du gerade erst C lernst, dann arbeite mit einem Texteditor und einem C-Compiler und verzichte auf irgendwelche IDEs.

In deinem Fall wird Eclipse wohl falsch konfiguriert sein, sodass der nicht die C-Bibliothek findet.

Also noch einmal: Nutze einen einfachen Texteditor und lerne erst einmal die Grundlagen von C, bevor du mit irgendwelchen IDEs beginnst. Die sind an dieser Stelle sowieso mehr als unnötig.

Der Source Code ist ansonsten korrekt, gehört aber in eine Source-Datei (.c) und nicht in eine Header-Datei (.h).

Naja, IDEs sind aber nicht grundsätzlich schlecht. Ich habe mit Code::Blocks begonnen und es hat alles gut funktioniert - das ist auch übersichtlicher als in einem normalen Texteditor.

Aber ja, die IDE sollte schon richtig eingestellt sein ^^

1

Nur so als Randnotiz:

gehört aber in eine Source-Datei (.c) und nicht in eine Header-Datei (.h).

Ist zwar korrekt, aber es würde auch funktionieren, sofern die Header-Datei in der entsprechenden Source-Datei per #include eingebunden oder einfach direkt in den Kompiler geschmissen würde.

Sollte man keinesfalls machen, aber es würde funktionieren (ähnlich, wie eine Schraube mit nem Hammer in den Dachbalken zu prügeln). ^^

1
@Isendrak

C interessiert sich nicht sonderlich für Dateiendungen, die einzige Ausnahme gemäß Standard sind System-Includes (<>). Jenseits dessen ist es wirklich Jacke wie Hose, es dient letztlich nur der Übersicht und einfachen Nutzung, wenn man sauber trennt und benennt.

1

Wenn du mit C arbeiten möchtest, wieso hast du dann ein C++-Projekt erstellt? Klar, das geht auch und selbst der Code, welcher eigentlich in die cpp-Datei gehört, könnte in der Headerdatei bleiben, aber eigentlich ist es nicht nötig.

Nichtsdestotrotz, wie hast du denn Eclipse bisher für C eingerichtet? Schau dazu hier.

hab separat ein C Eclipse installiert (hab da nenn link bekommen von meiner vorherigen Frage) also hab jetzt 2 Eclipses auf meinem Desktop einmal Java version einmal C/C++ version hmmm und woher siehst du am Foto das es ein C++ Projekt ist, nun gut ich werd später mal C Projekt erstellen wenn ich das hinkriege..... ja muss C lernen dringend hab da so ein Modul "C Programmierung" aber bei einem leichten Dozent also werd Ichs nur oberflächlich lernen xD aber bei Java muss ich reinhauen ja leider.....

0
@Nichtsnutz12

An den Dateiendungen. Für C hat die Implementationsdatei die Endung .c, in C++ die Endung .cpp.

1

Der Code gehört nicht in deine Headerdatei. Dies ist die Spezifikation bzw. das Interface nach außen. Die Implementation gehört in die CPP-Datei, wobei dies auch schon nach C++ schreit, auch wenn es soweit ich weiß kompatibel ist.

Vermutlich läuft es schon, wenn du es in die CPP Datei kopierst und hier raus löscht.

Woher ich das weiß:Beruf – Softwareentwickler/Projektleiter seit 2012

hab in CPP Datei rein gemacht bringt nix

0
@Nichtsnutz12

Dann stellt sich die Frage ob der Compiler bzw. die Toolchain korrekt eingerichtet ist. Meine das war in Eclipse zumindest früher nicht automatisch drin und man musste z.B. MinGW runterladen und konfigurieren.

1
#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("Hallo Welt!\n");
    return 0;
}

Am Leerzeichen denke ich.

hab ich schon probiert nein liegt nicht dran

0

An welchem Leerzeichen?

Das zwischen printf und der Klammer? Da können auch hunderte Leerzeichen stehen, ohne dass es den Kompiler auch nur im geringsten insteressiert...

9

Wenn man versucht, sein Halbwissen als Fakten darzustellen...

2
@PeterLustig1999

Ich habe geschrieben "denke ich".

Ich lerne erst seit ein paar Wochen C# und wollte eben helfen. (was halt nicht gut funktioniert hat ^^)

2
@Top55

Nichts für ungut, aber programmiert sich C# nicht vollkommen anders, als C? Das mit dem Aufrufoperator und dem Whitespace zwischen ihm und der aufzurufenden Funktion dürfte auch in C# kein Problem darstellen. Aber ich habe auch mal ein wenig C# programmiert. Und C# programmiert sich eher wie ein Java, als ein C (auch wenn sich C# viele Schlüsselwörter aus C und C++ leiht).

1
@PeterLustig1999

Wahrscheinlich schon, aber du kennst dich da sowieso viel besser aus als ich :D (Und ich muss mich entschuldigen, ich programmiere in C das war ein Tippfehler...)

0
@Top55

Zugegeben, ich bin auch kein Profi. Wäre ich einer, würde ich Informatik nun nicht mehr studieren. Aber ich programmiere schon eine ganze Weile und habe das ein oder andere mal ausprobiert.

C# gefällt mir momentan nicht, weil es keinen Compiler für Linux gibt. Wenn ich Software entwickle, dann grundsätzlich für alle erdenklichen Betriebssysteme (und nein, MacOS ist für mich kein Betriebssystem :D). Am liebsten programmiere ich C++, auch, weil das die erste Sprache ist, die ich jemals gelernt habe. Aber es ist gut, mal ein paar Sprachen auszuprobieren. Rust gefällt mir auch, und wenn ich dazu verdammt werde, Pseudocode zu schreiben, schreibe ich fast automatisch schon Python, einfach weil Python wie Pseudocode ist.

Momentan bin ich das ganze Semester in einer Veranstaltung mit der Betriebssystemprogrammierung unter Linux/POSIX-kompatiblen Systemen in C beschäftigt. Gott sei Dank muss ich nun im Studium keine Pointer-Arithmetik mehr lernen. Das bricht vielen meiner Kommilitonen momentan das Genick.

1
@PeterLustig1999
C# gefällt mir momentan nicht, weil es keinen Compiler für Linux gibt.

Oh doch, den gibt es. Und zwar nicht erst sei gestern.

Schaust her: https://www.mono-project.com/

Einzige "große" Einschränkung: (Noch) Keine Unterstützung für WPF.

0
@Isendrak

Mono kannte ich als Compiler bereits. Dass die Ausführung von Windows-Programmen unter Linux mittels Kompatibilitätsebene ebenfalls möglich ist, war mir auch bewusst. Nicht aber, dass Mono eine Implementierung des .NET-Frameworks für Linux mit bringt. Wie lange gibt es das denn bereits? Es ist ein paar Jahre her, dass ich mal was mit C# zu tun hatte.

0
@PeterLustig1999

Laut den Informationen bei https://en.wikipedia.org/wiki/Mono_(software) gibts das "Mono Project" seit dem 30.06.2004. (Oder meinst du was anderes?)

Ob von Anfang an ein C#-Kompiler dabei war weiss ich allerdings leider nicht.

Aber zumindest seit einiger Zeit (mindestens seit Version 4.irgendwas, evtl. aber auch schon früher) sind u.a. die Wrapper-Skripte /usr/bin/csc und /usr/bin/msbuild mit dabei (vorher waren es u.a. /usr/bin/mono-csc und /usr/bin/xbuild).

Recht interessant an dem ganzen ist, dass sofern man keine Mono-spezifischen Libraries (z.B. Mono.Posix, usw.) und/oder WPF das erstellte Programm sowohl unter Linux+Mono als auch unter Windows+.NET gleichermaßen lauffähig ist (und sich auch gleichermaßen kompilieren lässt).

Wenn man dann noch für etwas speziellere Dinge (z.B. DLL-Imports; einbinden von Funktionen aus nativen Bibliotheken) entsprechende Wrapper-Klassen schreibt und zur Laufzeit überprüft, ob das Programm unter Linux, Windows oder "anderes" läuft, dann ist C# (abzüglich WPF) fast genau so plattformunabhängig wie Java. ^^

0

Was möchtest Du wissen?