C - Problem mit "eigener" Bibliothek!

anfield6road

Grünschnabel
Neuerdings arbeite ich mit Dev C++. Bin in C relativ unerfahren!
Hab daher eigentlich ein einfaches Problem, eigentlich!

Folgendes "main":
main hat gesagt.:
#include <stdio.h>
#include <stdlib.h>
#include "datum.h"

int main(int argc, char *argv[])
{ PDate date;
char eing;
date->tag = 1;
date->month = 1;
date->year = 2000;

do
{ printf("Next Day? [y]es / [n]o");
eing = getchar();
NextDay(date);
} while(eing != 'n');

system("PAUSE");
return 0;
}

Dazu mein "datum.h"
datum.h hat gesagt.:
typedef struct
{ int day;
int month;
int year;
} Datum;

typedef struct Datum* PDate;

void NextDay(date);
void NextMonth(date);
void NextYear(date);

void show(date);

Dazu beim fett markierten folgendes Meldung
In file included from main.c

Kann mir jemand sagen was das für eine Bedeutung hat?!

MfG anfield6road
 
Hi.
Dazu beim fett markierten folgendes Meldung
In file included from main.c
Das ist erst der Anfang der Fehlermeldung, den Rest hast du irgendwie unterschlagen.

Ich würde vermuten das sich der Compiler beschwert, dass der Type "date" nicht bekannt ist.

Desweiteren hast du "vergessen" Speicher für deine Variable date anzulegen und greifst schreibend auf eine zufällige Adresse im Speicher zu.

Gruß
 
Erstmal danke für die Antwort!

mM nach ist das das Ende der Fehlermeldungen, der Rest sind [Warnings]

Fehler hat gesagt.:
In file included from main.c
[Warning] parameter names (without types) in function declaration
einige male...
In function `main':
dereferencing pointer to incomplete type
einige male...
[Build Error] [main.o] Error 1

Mittlerweile habe ich (Danke ;) ) date = malloc(sizeof(Date)); hinzugefügt, die Vereinbarung die mir noch gefehlt hat! "Noch" keine Änderung, Funktioniert weiter nicht! :confused:
 
Hi
Erstmal danke für die Antwort!

mM nach ist das das Ende der Fehlermeldungen, der Rest sind [Warnings]
Nein, der Rest (bis zu "in function main...") gehört zu der Zeile dazu.

Wie ich bereits sagte, kann dein Compiler den Typ "date" nicht finden und beschwert sich dann, das du die Parameter ohne Typ angegeben hast. Die Warnung sollte 4 mal auftreten, da du 4 Funktionen deklariert hast die einen Parameter ohne Typ haben.

Versuch's mal so:
C:
void NextDay(PDate);
Mittlerweile habe ich (Danke ;) ) date = malloc(sizeof(Date)); hinzugefügt, die Vereinbarung die mir noch gefehlt hat! "Noch" keine Änderung, Funktioniert weiter nicht! :confused:
Komisch, ich sehe keinen Typ oder eine Variable mit dem Namen "Date", meintest du evtl. "Datum"?

C:
typedef struct
{ int day;
int month;
int year;
} Datum;

typedef struct Datum* PDate;
Hier definierst du einen nicht-vollständigen Typen, denn einen "struct Datum" gibt es nicht. Du hast mittels typedef einen neuen Typ namens "Datum" definiert.

Irgendwie kommst du aber anscheinend mit der englischen bzw. deutschen Bezeichnung deiner Variablen durcheinander - entscheide dich am besten für eine Variante.

Gruß
 
So... habe jetzt alle Fehler (Dank deiner Hilfe) ausgebessert und das Programm funktioniert =)

Danke für die Hilfe, auch wenn ich als Anfänger wohl verwirrend geschrieben habe!!

Der "Grundfehler" lag wohl darin, das ich (warum auch immer) typedef struct Date* PDate ausprogrammiert habe!
 
Zurück