我得到了一个名为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/