Forum: PC-Programmierung Programmieren in C auf dem Mac


von Christian S. (chris72160)


Lesenswert?

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?
1
#include <stdio.h>
2
3
main()
4
{
5
  printf("hello, world\n");
6
}

Danke.

Gruß Chris

von ♪Geist (Gast)


Lesenswert?

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

von Dussel (Gast)


Lesenswert?

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.

von Rene H. (Gast)


Lesenswert?

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.

von Rene H. (Gast)


Lesenswert?

Ach ja, XCode nimmt per Default den Objective C Compiler. Google sonst 
mal nach XCode gcc.

z.Bsp. 
http://www.cyberciti.biz/faq/howto-apple-mac-os-x-install-gcc-compiler/

Grüsse,
René

von Christian S. (chris72160)


Lesenswert?

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

von MaWin (Gast)


Lesenswert?

> 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.

von Dennis S. (eltio)


Lesenswert?

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

von Christian S. (chris72160)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

Christian Stielz schrieb:
> Wundere mich nur darüber, dass Xcode ein "int" vor "main" stehen haben
> will.

das ist nunmal C Standard.

von mar IO (Gast)


Lesenswert?

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).

von Kai S. (kai1986)


Lesenswert?

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

von Dussel (Gast)


Lesenswert?

> 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.

von mar IO (Gast)


Lesenswert?

Dussel schrieb:
> Ist
> void main()
> inzwischen irgendwie Standard geworden?

Wurde so was ähnliches nicht vor kurzem gepostet? -> 
Beitrag "Re: nach main()-Schleife"

von Christian S. (chris72160)


Lesenswert?

Mein Buch ist übrigens von 1990.

Damals stand da weder void, noch int vor main.

"Willkommen in der Gegenwart." :)

Gruß Chris

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Christian S. (chris72160)


Lesenswert?

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.

Gruß

von Borislav B. (boris_b)


Lesenswert?

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?

von mar IO (Gast)


Lesenswert?

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.

vllt. bringen dir die folgenden Links etwas mehr Verständnis, aber die 
main-Funktion ist halt definiert worden wie sie aussieht bzw. aussehen 
kann/muss.

Funktionen: Hauptfunktion main
http://openbook.galileocomputing.de/c_von_a_bis_z/009_c_funktionen_016.htm#mj83e1f6e18e918a88865939f619a20bc6

Rückgabewerte von main:
http://openbook.galileocomputing.de/c_von_a_bis_z/009_c_funktionen_017.htm#mj82d3399d6552d04e1e2b590cfbce5fa4

Kommandozeilenargumente:
http://openbook.galileocomputing.de/c_von_a_bis_z/013_c_kommandozeilenargumente_001.htm#mjf6a9e42fa3bc25b2b1e06270e7bf8f68

von Yalu X. (yalu) (Moderator)


Lesenswert?

Wenn man den Rückgabetyp einer Funktion weglässt, defaultet er zu int. 
Viele Compiler geben dann aber eine Warnung aus.

von Karl H. (kbuchegg)


Lesenswert?

> 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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Jeje (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.