Мне предоставлена функция statPrint для обработки системного вызова stat(). Функция предоставляется с другим файлом .o. Я получаю ошибки при компиляции моей реализации с этой функцией:Как обрабатывать заданную функцию extern в C
In function ‘main’:
statcall.c:9:19: error: expected expression before ‘,’ token
statPrint(argv[1]*,sb*);
^
statcall.c:9:19: error: incompatible type for argument 2 of ‘statPrint’
statcall.c:4:8: note: expected ‘struct stat *’ but argument is of type ‘struct stat’
extern statPrint(char*,struct stat*);
Вот мой код:
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
extern statPrint(char∗,struct stat∗);
int main(int argc, char *argv[])
{
struct stat sb;
stat(argv[1],&sb); ///argv[1] contains input from the terminal/shell
statPrint(argv[1]*,sb*);
}
я скомпилировать его с (Libštát содержит внешнюю функцию):
gcc -o statcall statcall.c libstat.o
Как избавиться от ошибок?
В этой строке: 'extern statPrint (char *, struct stat *);' Должно ли statPrint иметь возвращаемое значение? Вероятно, 'int' или' void'? – abelenky
Это '*' не совсем похоже на '*'. Это ваш фактический исходный код ??? –
Не могли бы вы объяснить или привести пример? Я новичок в c и никогда раньше не видел extern. extern statPrint (char *, struct stat *) - это то, как учитель дал это нам. Я думал, что должен объявить это так, а затем использовать функцию statPrint в главном. – nelthas