我得到了一个名为statPrint的函数来处理系统调用stat()的打印。该函数提供了另一个.o文件。使用该函数编译实现时出错:

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*);
}

我用(libstat包含外部函数)编译它:
gcc -o statcall statcall.c libstat.o

我怎样才能摆脱这些错误呢?

最佳答案

这句话毫无意义:

statPrint(argv[1]*,sb*);

没有以*结尾的有效语法。
我想你想要:
statPrint(argv[1], &sb);

建议您阅读变量和指针的地址。

关于c - 如何在C中处理给定的外部函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28302509/

10-12 16:11