Deklaracje funkcji read_vector i display_vector umieść w pliku nagłowkowym vector_utils.h, a ich definicje w pliku vector_utils.c.
Zrobilem to, jednak gdzies podwojnie zdefiniowana jest funkcja, czy moglby mi ktos powiedziec, gdzie jest blad? Z gory dziekuje
"
/usr/bin/ld.gold: error: vector_utils.o: multiple definition of 'read_vector'
/usr/bin/ld.gold: 21.08.o: previous definition here
/usr/bin/ld.gold: error: vector_utils.o: multiple definition of 'display_vector'
/usr/bin/ld.gold: 21.08.o: previous definition here
"
Main
#include <stdio.h>
#include <stdlib.h>
#include "vector_utils.h"
#include "vector_utils.c"
int main()
{
int tab[100];
int stop_value = -1;
int size = 0;
int rozmiar;
rozmiar = read_vector(tab, size, stop_value);
sort(tab, rozmiar);
display_vector(tab, rozmiar);
return 0;
}
int sort(int* tab, int size)
{
if(tab == NULL) return 0;
int i, j, schowek = 0;
for( j = 0; j < size; j++ )
{
for( i = 0; i < size; i++ )
{
if( *( tab + i ) > *( tab + i + 1 ) && *(tab +i + 1 ) != -1)
{
schowek = *( tab + i );
*( tab + i ) = *( tab + i + 1 );
*( tab + i + 1 ) = schowek;
}
}
}
return 1;
}
vector_utils.h
#ifndef vector_utils_h
#define vector_utils_h
int read_vector(int* tab, int size, int stop_value);
void display_vector(const int* tab, int size);
int sort(int* tab, int size);
#endif
vector_utils.c
#include <stdio.h>
#include <stdlib.h>
int read_vector(int* tab, int size, int stop_value)
{
int i;
size = 0;
stop_value = -1;
printf("Wpisuj wartosci calkowite: \n");
for(i = 0; i < 100; i++)
{
scanf("%d", &*(tab+i));
size++;
if(*(tab+i)==stop_value)
{
size--;
break;
}
}
return size;
}
void display_vector(const int* tab, int size)
{
int i;
for(i=0; i<size; i++)
{
printf("%d ", *(tab+i));
}
}