Hallo,
hab glaub ich nur ein kleines Problem.
Wie bekomme ich das tyedef bei den beiden Strukturen weg, ohne die Arbeitsweise des Programms zu verändern?
Habs probiert wegzunehmen und umzunennen aber dann bekommen ich eine Menge Fehler vom Compiler gezeigt.
Die Strukturen sollen dann nur noch struct Queueelement und struct Queue heißen.
C
#include <stdio.h>
#include <stdlib.h>
typedef struct _Queueelement{
float value;
struct _Queueelement *next;
}Queueelement;
typedef struct _Queue{
Queueelement *first;
Queueelement *last;
}Queue;
int enqueue(Queue *q,float data){
Queueelement *n = malloc(sizeof(Queueelement));
if(n!=NULL){
n->next = NULL;
n->value = data; /*das n welches auf value zeigt soll den Wert von data bekommen*/
if(q->last==NULL){
q->last = q->first = n;
}else{
q->last->next = n;
q->last = n;
}
return 1;
}
printf("buffer overrun");
return 0;
}
float dequeue(Queue *q){
Queueelement *n = q->first;
float ret = 0;
if(n!=NULL){
q->first = n->next;
if(q->first == NULL)
q->last = NULL;
ret = n->value;
free(n);
}else{
printf("buffer underrun");
}
return ret;
}
float front(Queue *q){
printf("%f", q->first->value);
}
int main(void) {
Queue q;
q.first = NULL;
q.last = NULL;
enqueue(&q,1.0);
enqueue(&q,2.0);
enqueue(&q,3.0);
enqueue(&q,4.0);
enqueue(&q,5.0);
front(&q);
printf("%f\n",dequeue(&q));
printf("%f\n",dequeue(&q));
printf("%f\n",dequeue(&q));
front(&q);
printf("%f\n",dequeue(&q));
printf("%f\n",dequeue(&q));
//system("pause");
return 0;
}
Alles anzeigen
Schonmal danke im vorraus.
MMM