Buenas gente. Estoy haciendo ejercicios y hay un error al cual no le encuentro sentido... El error dice tal que así:
Description Resource Path Location Type
first defined here LinkedList.c /Examenes/src line 14 C/C++ Problem
first defined here LinkedList.c /Examenes/src line 18 C/C++ Problem
first defined here LinkedList.c /Examenes/src line 41 C/C++ Problem
multiple definition of `AnadirProceso' LinkedList.c /Examenes/src line 18 C/C++ Problem
multiple definition of `Crear' LinkedList.c /Examenes/src line 14 C/C++ Problem
multiple definition of `MostrarLista' LinkedList.c /Examenes/src line 41 C/C++ Problem
En un principio el fallo está claro. Pero por más que miro no veo ninguna redefinición. El código es de una Linked List Circular Os dejo aquí el header:
#ifndef LINKEDLIST_H_
#define LINKEDLIST_H_
typedef struct Linked_List* LProc;
struct Linked_List {
unsigned valor;
LProc sig;
LProc ejecucion;
};
//Crea una lista de procesos vacía.
void Crear (LProc *lista);
//Añade el proceso con identificador idproc a la lista de procesos disponibles para ejecución.
//Este proceso se añade como nodo anterior al nodo al que apunta ejecución.
void AnadirProceso (LProc *lista, int idproc);
//Muestra la lista de los procesos que están disponibles para la ejecución.
void MostrarLista( LProc lista);
//Simula la ejecución del proceso apuntado por ejecución, eliminándolo de la lista de procesos.
void EjecutarProceso(LProc *lista);
#endif /* LINKEDLIST_H_*/
Aquí el .c
#include <stdio.h>
#include <stdlib.h>
#include "LinkedList.h"
void Crear (LProc *lista) {
lista = NULL;
}
void AnadirProceso (LProc *lista, int idproc) {
LProc* aux = lista;
if(aux == NULL){
LProc nuevo
= (LProc
)malloc(sizeof(struct Linked_List
)); nuevo->valor = idproc;
nuevo->sig = nuevo;
nuevo->ejecucion = nuevo;
} else {
LProc nuevo
= (LProc
)malloc(sizeof(struct Linked_List
)); nuevo->valor = idproc;
nuevo->sig = (*lista)->ejecucion;
nuevo->ejecucion = (*lista)->ejecucion;
while((*aux)->sig != *lista)
(*aux) = (*aux)->sig; //Hacemos de aux el anterior a lista
(*aux)->sig = nuevo;
}
}
void MostrarLista( LProc lista) {
LProc aux = lista;
while(aux->sig!=lista) {
}
}
Y aquí el main:
#include <stdio.h>
#include <stdlib.h>
#include "LinkedList.c"
int main () {
LProc list;
Crear(&list);
MostrarLista(list);
AnadirProceso(&list, 3);
AnadirProceso(&list, 8);
AnadirProceso(&list, 1);
AnadirProceso(&list, 14);
AnadirProceso(&list, 0);
printf("Despues de introducir: 3, 8, 1, 14, 0 la lista es es \n");
MostrarLista(list);
return 0;
}
Espero que podais ayudarme. Uso Eclipse Luna con CDT y Mingw.
Muchas gracias