Allora sto provando a tirare giù qualcosa di banale, anche solo per creare una coda normale. Per ora ho creato questi file:
item.h
codice:#include <stdio.h> typedef char item;
random_queue.h
codice:#include "item.h" struct random_queue; typedef struct random_queue *queue_random_queue; queue_random_queue random_queue_make(); int random_queue_is_empty(queue_random_queue); item random_queue_remove(queue_random_queue); void random_queue_insert(queue_random_queue,item); void random_queue_print(queue_random_queue);
random_queue.c
codice:#include "random_queue.h" #include <assert.h> #include <stdio.h> struct _node{ item c; struct _node * next; }; typedef struct _node * node; struct random_queue{ node first; node last; }; queue_random_queue random_queue_make(){ queue_random_queue new_queue = (queue_random_queue) malloc(sizeof(struct random_queue)); assert(new_queue); new_queue->first = new_queue->last=(node) NULL; return new_queue; } int random_queue_is_empty(queue_random_queue q){ assert(q); if(q->first == (node) NULL) return 1; else return 0; } void random_queue_insert(queue_random_queue q, item i){ assert(q); { node new_node = (node) malloc(sizeof(struct _node)); assert(new_node); new_node->c=i; if(random_queue_is_empty(q)==1){ q->first=new_node; q->last=new_node; } else { q->last->next=new_node; q->last=new_node; } } } void random_queue_print(queue_random_queue q){ node i=q->first; while(i->next != (node) NULL){ printf("\n%c",i->c); i=i->next; } } item random_queue_remove(queue_random_queue q){}
testrq.c
codice:#include "random_queue.h" #include <stdio.h> main(){ queue_random_queue q; q=random_queue_make(); return 0; }
Ora il problema è che quando compilo con
$ gcc -o trq testrq.c
mi viene restituito il seguente errore: "undefined reference to 'random_queue_make'"
Vista la mia incapacità di fondo mi è anche venuto il dubbio che possa mancare qualche parametro da passare al compilatore, ma chiedo a voi se sbaglio qualcosa.
Grazie


Rispondi quotando