Forum: PC-Programmierung will c lernen und habe ein buch, kapiere aber das ganze immer noch nicht.


von Niklas B. (nikeldi)


Lesenswert?

Hallo,

Ich habe von einem Freund ein Buch ausgeliehen um c zu lernen. Ich habe 
früher schonmal c gekonnt, habe aber alles, wirklich alles vergessen. 
Und nun lege ich in XCode ein Projekt an und es springen mir unerwartete 
Zeilen ins Gesicht, von denen ich nichts kapiere. Könnte mir mal jemand 
zeigen, wie insgesamt die Programmzeilen im Editor aussehen sollten?

Vielen Dank
Niklas

von Peter (Gast)


Lesenswert?

1
// Das ist ein Kommentar

Stell doch mal konkrekte Fragen zu einer Zeile die du nicht verstehst.

von Karl H. (kbuchegg)


Lesenswert?

Kann es sein, dass du den Fehler machst,als erstes ein Programm mit 
einer graphischen Obefläche zu programmieren?

Diese Kategorie von Programmen sind für den Einstieg ziemlich 
ungeeignet, weil du erst mal einen enormen Überbau benötigst um 
überhaupt graphische Elemente auf den Schirm zu bekommen, die sich auch 
noch korrekt verhalten müssen. Das alles ist zwar in fertigen 
Bibliotheken gekapselt, aber auch die wollen erst mal initialisiert, 
richtig angesprochen und korrekt verwendet werden. Und all das siehst du 
natürlich im Code (den möglicherweise ein Wizard generiert hat).

von Niklas B. (nikeldi)


Lesenswert?

Also, wenn ich eine ganz neue, unbearbeitete c-file erstelle, dann steht 
in den Zeilen:

/*
 * main.c
 * c-test001
 *
 * Created by Niklas Braun on 03.03.10.
 * Copyright 2010 _MyCompanyName_. All rights reserved.
 *
 * Compile on the command line as follows:
 * gcc -o "c-test001" c_test001.c main.c -lfuse
 *     -D_FILE_OFFSET_BITS=64 -D__FreeBSD__=10 -DFUSE_USE_VERSION=26
 */
#include "fuse.h"

extern struct fuse_operations c_test001_operations;

int main(printf("??/nDies ist ein Test.??/n");) {
  umask(0);
  return fuse_main(argc, argv, &c_test001_operations, NULL);
}

Das wars. In dem Buch habe ich leider keine Tipps gefunden, was das 
heißen könnte.

von Klaus (Gast)


Lesenswert?

Sirenengeheul

Achtung, Trollalarm!  Nicht füttern!

von Karl H. (kbuchegg)


Lesenswert?

Niklas Braun schrieb:

> Das wars. In dem Buch habe ich leider keine Tipps gefunden, was das
> heißen könnte.

Dazu wirst du auch in keinem allgemeinen C-Buch irgendetwas genaueres 
finden. Das ist alles XCode spezifisch.
Such dir ein Tuorial am Web, welches dich durch die ersten Schritte mit 
XCode bringt.

Für dich ist nur interessant, wo dein eigener Code hinmuss. Leider ist 
dieses Minimalframework schon so kryptisch (und ich würde sagen, dass 
ist noch nicht einmal richtiges C), dass man da noch nicht einmal 
erraten kann, wie sich die Apple Leute das vorgestellt haben.

Mit Sicherheit wird es darauf hinauslaufen, dass du diese Vorgabe erst 
einmal so akzeptierst wie sie ist und rausfindest, wo deine eigene 
Programmlogik hin muss. Normalerweise sieht ein C-Programm so aus
1
....
2
3
int main()
4
{
5
   .... hier dein Programmcode
6
}

aber bei deinem Schnipsel ist überhaupt nichts so wie es sein sollte.
Da wird dir nichts anderes übrig bleiben als:

Anderes Entwicklungssystem benutzen. Möglichst eines bei dem es noch 
möglich ist, normale Konsolenprogramme zu schreiben.

XCode Doku lesen: Würde mich wundern, wenn es in XCode keine Möglichkeit 
gäbe, nicht stink normale Konsolenprogramme (also ohne den ganzen 
graphischen Überbau) zu schreiben, die so geschrieben werden, wie C 
ursprünglich gedacht war.

Literatur zum Thema "C mit XCode" zu besorgen.

von Mano W. (Firma: ---) (manow)


Lesenswert?

Das Template ist sicher nicht von Apple. Nirgends wirst Du die Zeile
1
int main(printf("??/nDies ist ein Test.??/n");) {

finden.

Xcode starten -> File -> New Project -> unter Reiter Application 
"Command Line Tool" auswählen und wenn nötig Type auf "C" stellen. Den 
Choose-Knopf drücken und der Anweisung folgen. Das war's auch schon. Die 
main.c sieht so dann aus
1
#include <stdio.h>
2
3
int main (int argc, const char * argv[]) {
4
    // insert code here...
5
    printf("Hello, World!\n");
6
    return 0;
7
}

von Lehrmann M. (ubimbo)


Lesenswert?

Mano Wee schrieb:
> int main(printf("??/nDies ist ein Test.??/n");) {

Ein Funktionsaufruf (und noch dazu eine Main) in der ein printf 
übergeben wird. Haha das ist viel zu geil ! Sorry =)

Um mal jetzt ganz genau hinzukucken und mich in Kleinigkeiten zu 
verstricken:
Was sollte der Printf ausgeben: im Moment sieht das so aus:


??/nDies ist ein Test.??/n

ich nehme an rauskommen solle:

??
Dies ist ein Test.??

das müsste mann dann so schreiben

printf("??\nDies ist ein Test.??\n);

und zur übergabe:

funktion( hier stehen alle zu übergebenden variablen aus anderen 
Funktionen, durch Kommas getrennt ) {
....
Instruction Block
....
}

ein kleines Beispiel:

int main() {
 int x=2,y=1;
 ausgabe(x,y);
 return 0;
}

void ausgabe(int x, int y) {
 printf("%i",(x*2)+1+y);
}

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.