Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » C - Hilfe -Anfängeproblem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.10.2008, 13:12 Uhr
ask_child



Hallo, ich grüße euch.
Wir haben seit Woche mit der Programmiersprache C angefangen. Da ich noch ein Newbie bin, bitte ich euch dringend um Hilfe:


Bearbeitung:
Aufgabe 1



Bearbeitung:

Für diese Aufgabe legen Sie bitte die folgenden drei Dateien an: p1 main.c, p2 main.c, printfunctions.c

a. Definieren Sie in printfunctions.c einige (mindestens drei verschiedene) Funktionen zur Ausgabe irgendwelcher
Texte oder Werte auf der Konsole. Die Datei printfunctions.c soll keine main(...)-Funktion
enthalten.

b. Definieren Sie in p1 main.c und p2 main.c jeweils eine main(...)-Funktion, in der (beliebige) Aufrufe
von Funktionen aus printfunctions.c vorkommen.

c. Schreiben Sie ein Makefile, das es möglich macht, durch einen Aufruf entweder nur Programm 1 (make
p1), nur Programm 2 (make p2) oder beide Programme (make all) zu übersetzen. Achten Sie vor allem
darauf, die Abhängigkeiten f¨ur die verschiedenen Ziele korrekt zu definieren.

d. Was passiert, wenn Sie zwei mal direkt hintereinander (make all) aufrufen?

e. Öffnen Sie die Datei p1 main.c, fügen Sie an geeigneter Stelle eine weitere Konsolenausgabe hinzu und
speichern Sie die Änderungen. Was passiert, wenn Sie jetzt erneut ein (make all) aufrufen?

f. Ändern Sie das Compiler-Aufruf-Makro in Ihrem Makefile so, dass beim Übersetzen der Module alle Warnungen
ausgegeben werden. Falls Warnungen ausgegeben werden: Um welche Warnungen handelt es sich,
und worin liegen jeweils die Ursachen? Verändern Sie die Quelldateien so, dass keine einzigeWarnung mehr
ausgegeben wird.



Ich verwende Cygwin und GCC Compiler ver.3.4.4

Die a) und b) habe ich wie folgt geschafft (hoffe ich)



printfunctions.c

Code:

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

#include "printfunctions.h"

int ausgabe1()  {
  return Eins;  
}

int ausgabe2() {
  char c = '2';
  printf("%c. Ausgabe\n", c);
  return EXIT_SUCCESS;  
}

int ausgabe3() {
  char text[] = "3. Ausgabe";
  printf(text);
  return EXIT_SUCCESS;
}

int quadrat(int faktor)  {
  int produ = faktor * faktor;  // produkt
  return produ;
}




Header-Datei

printfunctions.h


Code:
#ifndef printfunctions
#define printfunctions

#define Eins (1)

int ausgabe1();
int ausgabe2();
int ausgabe3();
int quadrat(int faktor);

#endif




p1_main.c


Code:
#include <stdio.h>
#include <stdlib.h>

#include "printfunctions.h"

int main()  {
    printf("Aufruf der Funktion ausgabe1() aus printfunctions.c : %i. Ausgabe \n", ausgabe1());
    printf("Aufruf der Funktion ausgabe2() aus printfunctions.c : ");
    ausgabe2();
    printf("\n\n");
    return EXIT_SUCCESS;
}




p2_main.c


Code:
#include <stdio.h>
#include <stdlib.h>

#include "printfunctions.h"

int main()  {
    int iEingabe, iErgebnis;
    
    printf("Dieses Programm berechnet das Quadrat einer ganzen Zahl.\n");
    printf("Bitte geben Sie eine ganze Zahl ein: ");  
    scanf("%i", &iEingabe);  // Einlesen der Eingabe(n) mit &-Operator
    iErgebnis = quadrat(iEingabe);
    printf("Das Quadrat von %i ist %i\n\n", iEingabe, iErgebnis);
    return EXIT_SUCCESS;
}




Ich habe mit dem gcc so kompilieren lassen:


Bearbeitung:

gcc -g -Wall -o p1 p1_main.c printfunctions.c

gcc -g -Wall -o p2 p2_main.c printfunctions.c





Aber die makefile kriege ich leider nicht hin. Meine Makefile habe ich so gemacht:

makefile


Code:
# Makefile

CFLAGS = -g -Wall
CC = gcc

p1: p1_main.c printfunctions.c
    $(CC) $(CFLAGS) -o p1 p1_main.c printfunctions.c

p2: p2_main.c printfunctions.c
    $(CC) $(CFLAGS) -o p2 p2_main.c printfunctions.c



Das wäre meine makefile. Aber wenn ich in der Konsole den Befehl


Bearbeitung:
make p1


eingebe, erhalte ich nur die Fehlermeldung:


Bearbeitung:
***missing separator



Ich hoffe, ihr könnt mir helfen


Viele Grüße

Dieser Post wurde am 16.10.2008 um 13:15 Uhr von ask_child editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.10.2008, 17:45 Uhr
0xdeadbeef
Gott
(Operator)


Make erwartet am Anfang der eingerückten Zeilen ein Tab-Zeichen, ein paar Leerzeichen reichen da nicht aus.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: