Hallo,
ich würde gerne in C auf dem Mac programmieren.
Habe mittlerweile Xcode (inkl. Command Line Tools) und Eclipse auf dem
Rechner und weiss nicht, wo anfangen.
Hab hier ein furztrockenes Buch vor mir liegen ("Programmieren in C"),
dessen Beispiele ich sehr gerne am Mac nachvollziehen würde (inkl.
Debugging).
Wo und wie kann ich Beispiele, wie das folgende, eingeben um C lernen zu
können?
Bei youtube nach Tutorials gesucht?
>Wo und wie kann ich Beispiele, wie das folgende, eingeben um C lernen zu>können?
Wo -> am Computer
Wie -> via Tastatur
Xcode ist eine komplette IDE. Da erstellst du ein neues Projekt,
irgendwas mit C(++) Command Line… und schreibst den Text in die
automatisch erstellte main.c. Dann kannst du mit cmd+b das Programm
erstellen und das 'schwarze Symbol' im Projektfenster ausführen.
Ich würde nicht direkt mit XCode beginnen. Das Ding ist extrem komplex.
Vielleicht versuchst Du es erstmal mit einem einfachen Editor (z.B.
gvim/vi) und einem Terminal zum kompilieren.
gcc sollte bereits installiert sein, bin mir aber nicht sicher ob ich
den nachträglich installiert hatte.
Rene H. schrieb:> Vielleicht versuchst Du es erstmal mit einem einfachen Editor (z.B.> gvim/vi) und einem Terminal zum kompilieren.>> gcc sollte bereits installiert sein
Bitte etwas genauer.
Was Dussel geschrieben hat, konnte ich direkt so umsetzen. Danke! :)
Gruß Chris
> Ich würde nicht direkt mit XCode beginnen. Das Ding ist extrem komplex.
XCode ist wie Visual Studio.
Im Gegensatz zu command line Tools also einfach per Klick zu bedienen
ohne daß man ein Handbuch konsultieren muss.
Projekt erstellen, Art auswählen (hier Kommandozeilenanwendung in C),
Programm eintippen, und rennen lassen.
Christian Stielz schrieb:> Rene H. schrieb:>> Vielleicht versuchst Du es erstmal mit einem einfachen Editor (z.B.>> gvim/vi) und einem Terminal zum kompilieren.>>>> gcc sollte bereits installiert sein>> Bitte etwas genauer.>> Was Dussel geschrieben hat, konnte ich direkt so umsetzen. Danke! :)>> Gruß Chris
Die Empfehlung brauchst du nicht ernsthaft beachten... wer kein "Hello
World!"-Programm zum Laufen kriegt, der wird sich nicht mit vi und Co.
beschäftigen wollen. Ich habe zwar keinen MAC, aber selbst das Ding
sollte doch einen normalen Texteditor haben. Der reicht locker für deine
ersten Gehversuche in C.
Gruß Dennis
Vielen Dank für die vielen konstruktiven Beiträge.
Komme mit Xcode soweit zurecht.
Wundere mich nur darüber, dass Xcode ein "int" vor "main" stehen haben
will.
In meinem Buchbeispiel ist an dieser Stelle kein "int" vermerkt. Da
"int" doch eigentlich für Ganzzahlen steht, bin ich etwas verwundert,
nehme es aber mal so hin.
So, jetzt darf wieder auf dem Mac-User rumgehackt werden. :P
Gruß Chris
1) starte Xcode
2) Im Menü File->New->Project
3) ein Fenster (modal view) öffnet sich und wähle dort Command /Line/
Tool aus
4) im nächsten Fenster gibst Du deinen Projekt einen Namen usw. und
wählst unter Type /C/ aus. Den Hacken bei use /Automatic/
Reference /Counting/ brauchst Du nicht
5) das nächste Fenster legt fest, wo das Projekt angelegt werden soll
(wo auf der Festplatte)
6) nun kannst Du im linken Seitenbereich die /main.c/ auswählen und
anfangen zu hacken
7) hast Du deinen Code soweit fertig, dann klicke auf den /Run/-Button
und schon wird dein Projekt kompiliert. Sind Fehler drinnen, dann werden
dir sie angezeigt. Sind keine Fehler drinnen, dann läuft das Programm
von selbst los und Xcode geht in den Debugger-Mode. Hier kannst Du
Haltepunkte usw. setzten.
8) arbeite dein Buch durch...
Rene H. schrieb:> Ach ja, XCode nimmt per Default den Objective C Compiler. Google sonst> mal nach XCode gcc.
Xcode ist eine IDE und kann zum Programmieren für mehrere Sprachen
genutzt werden. Ob llvm oder gcc oder ... ist egal. Hauptsache die
können C (und llvm und gcc können viel mehr als C-Code kompilieren).
Christian Stielz schrieb:> Wundere mich nur darüber, dass Xcode ein "int" vor "main" stehen haben> will.
Damit definierst du den Datentyp, den die Funktion zurückgibt. Der
Standard definiert, das die main Funktion vom Typ int ist. wäre es jetzt
eine andere Funktion mit dem gleichen Inhalt wäre der Typ void, da du
nicht zurückgibst. Die Rückgabe erfolgt mit dem return-Befehl am Ende
der Funktion.
Gruß Kai
> Wundere mich nur darüber, dass Xcode ein "int" vor "main" stehen haben> will.
Wo wir gerade bei dem Thema sind und die eigentliche Frage beantwortet
wurde: Ist
void main()
inzwischen irgendwie Standard geworden? Ich habe es damals (vor über
zehn Jahren) mit
int main
gelernt. Aber selbst in der Hochschule wurde dann void main gelehrt. Ich
habe natürlich weiterhin problemlos int benutzt, aber für Diskussionen
wüsste ich das gerne mal.
Christian Stielz schrieb:> Damals stand da weder void, noch int vor main.
C89 gab es damals aber schon, also kein Grund, die Uralt-Version
von C als für diese Zeit noch zeitgemäß darzustellen.
Christian Stielz schrieb:> Das möchte ich auch gar nicht, sondern als blutiger Anfänger lediglich> verstehen, warum es auf einmal nicht mehr ausreicht nur main zu> schreiben.
Häää? Ich steck da jetzt nicht so drin, aber jede Funktion sollte doch
einen Rückgabetyp haben (und wenn es nur void ist). Den einwach
wegzulassen macht die Sache doch nicht schöner, oder?
> Mein Buch ist übrigens von 1990.
Wow.
Ein antiquarischer K&R
Sowas ist heutzutage schon selten.
> Frage beantwortet wurde: Ist> void main()> inzwischen irgendwie Standard geworden?
Nein.
Es war nie Standard. Lediglich Ignoranten, allen voran Microsoft, haben
es in ihren Dokus so benutzt, weil deren Compiler das konnte. So um
1988, 1990 rum gab es nicht allzuviele C-Compiler für den PC, so dass MS
leichtes Spiel hatte.
Karl Heinz Buchegger schrieb:>> Mein Buch ist übrigens von 1990.>> Wow.> Ein antiquarischer K&R> Sowas ist heutzutage schon selten.
Was ich sagen wollte: Kauf dir was neueres.
Die Sprache hat sich seit der Zeit ein klein wenig verändert.
Du lernst ja auch nicht mit einem Englisch-Buch von 1850.
Karl Heinz Buchegger schrieb:> Es war nie Standard.
Es war ein de-facto-Standard (“K&R-C”), dass fehlende Typen in
Deklarationen als “int” angenommen worden sind. Das betraf sowohl
Deklarationen von Parametern oder Variablen (bei letzteren muss aber
irgendetwas stehen, was dem Compiler dies als Variablendeklaration
erkennbar macht, bspw. eine Speicherklasse) als auch Funktionen.
Bereits ANSI-C89 (aka. ISO-C90), also die erste wirklich
standardisierte Version der Sprache (insofern stimmt Karl-Heinz'
Aussage natürlich) hat die nicht-prototypischen Funktionsdeklarationen
jedoch nur noch als Rückwärtskompatibilität enthalten (deprecated),
und mit ISO-C99 sind sie meines Wissens gar nicht mehr zulässig. Ein
Funktionsprototyp wiederum hat schon immer auch einen Typen des
Rückkehrwerts (bzw. “void” bei Funktionen, die nichts zurückgeben)
enthalten müssen.
Karl Heinz Buchegger schrieb:> Karl Heinz Buchegger schrieb:>>> Mein Buch ist übrigens von 1990.>>>> Wow.>> Ein antiquarischer K&R>> Sowas ist heutzutage schon selten.>> Was ich sagen wollte: Kauf dir was neueres.> Die Sprache hat sich seit der Zeit ein klein wenig verändert.>> Du lernst ja auch nicht mit einem Englisch-Buch von 1850.
C a modern Approach von K.N King. Bestes C Buch.