ich habe ein Verständnisproblem.
haederdatei:
Code: Alles auswählen
#ifndef LAGFUNC_H_
#define LAGFUNC_H_
int bestellMenge(struct artikel_t art[], int*, int);
Code: Alles auswählen
int bestellMenge(struct artikel_t art[], int *ueberlauf, int len)
{
struct artikel_t artAkt; /*aktualen artikel. Die Struktur ihnen der Funk nenne ich art_Akt. Es ist die gleiche Struktur.*/
int i=0, contnr=0;
if(openLager()==EXIT_SUCCESS)
{
while(readNext(&artAkt)==EXIT_SUCCESS) /* die (Anfangs)-Adresse der Srtuktur.*/
{
if(artAkt.bestand < artAkt.min)
{
if(i<len)
{
art[contnr]=artAkt;
contnr++;
}
else
{
ueberlauf++; /* oder (*ueberlauf)++ */
}
i++;
}
}
}
else
contnr=-1;
closeLager();
return contnr;
}
ich möchte das Programm mit typedef erstellen, also
headerdatei:
Code: Alles auswählen
#ifndef LAGFUNC_H_
#define LAGFUNC_H_
typedef struct{
int counter;
int ueberlauf;
}return_Wert;
return_Wert bestellMenge(struct artikel_t *, int*, int);
Code: Alles auswählen
return_Wert bestellMenge(struct artikel_t art[], int *ueberlauf, int len) /* call-by-reference and call-by-value */
/* was die Function macht*/
{
/*lokale Variable */
struct artikel_t artAkt; /*aktualen artikel. Die Struktur ihnen der Funk nenne ich art_Akt. Es ist die gleiche Struktur.*/
int i=0, counter=0;
if (openLager()==EXIT_SUCCESS) /* 1. open Datei */
{
while(readNext(&artAkt)== EXIT_SUCCESS) /* 2. read Datei. aufruf von *artArt */
{
if(artAkt.bestand < artAkt.min) /* 3. if bestand < min */
{
if(i<len) /* 4. i < len dann */
{
art[counter] = artAkt; /* oben *art == art[] */
counter++; /* alle Artikel zählen */
}
else
{
ueberlauf++;
}
i++;
}
}
}
else counter = -1;
closeLager();
return ???????????????? ;
}
mein Problem ist folgendes: als Ausgabe return counter;
wenn ich typedef verwende, es zeigt mir incompatible types when assigning to type 'int' from type 'return_Wert'. Also wie gibt man nur ein Variable von ein struct oder typedef aus? Ins I-net habe ich nichts gefunden.
Hat jemand Vorschlag. Danke