Судя по добавлению к вашему вопросу, вы не понимаете, как включить generator.h
и затем скомпилировать код. Сначала ваш generator.h
должен быть:
//////generator.h//////
#ifndef GENERATOR_H
#define GENERATOR_H 1
int *gen (int arr[]);
#endif
( edit: добавлено соответствующее Защита заголовка для предотвращения многократного включения generator.h
)
Ваш generator.c
будет тогда:
//////generator.c///////
#include <stdlib.h>
#include "generator.h"
int *gen (int arr[])
{
int i = 0;
int * p = arr;
int len = 10;
while (i< len)
{
*p = rand() % len + 1;
i ++;
p++;
}
return arr;
}
И, наконец, ваш main.c
(я назвал это gen.c
) будет:
//////main.c///////
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "generator.h"
int main(void)
{
int i = 0;
int arr[10]={0};
int *p;
srand( (unsigned)((time)(NULL)));
p = gen(arr);
while (i < 10)
{
printf ("output is %d\n",*p);
i++;
p++;
}
return 0;
}
Компиляция
$ gcc -Wall -Wextra -pedantic -std=c11 -Ofast generator.c -o bin/gen gen.c
( примечание: Я также рекомендовал бы добавить -Wshadow
в качестве нормальной части вашей строки компиляции, а также для идентификации любых теневых переменных)
Пример Использование / Вывод
$ ./bin/gen
output is 8
output is 1
output is 5
output is 4
output is 9
output is 5
output is 4
output is 6
output is 5
output is 6
Просмотрите все и дайте мне знать, если у вас есть дополнительные вопросы.