我将外部函数导入主c文件时遇到问题。
这是我的最小代码:
/* main.c */
#include<stdio.h>
extern int func()
int main(){
extern int func();
}
/*external file with one function that I want to
import*/
#include<stdio.h>
int func(){
printf("Hello World Again\n");
}
我编译并运行如下 - gcc main.c 然后 ./ a.out 但没有任何事情发生。 有什么想法吗?
答案 0 :(得分:4)
您必须编译包含func
gcc -Wall main.c external_file.c
(请注意,编译器命令中的-Wall
并非绝对必要,但这是非常好的做法)
正如其他人所说,您还需要修改代码才能调用func
,而不是仅仅重新声明它。
答案 1 :(得分:2)
因为你只是声明了这个函数,你从来没有调用过它!
extern int func();
声明一个函数。要打电话给你,你必须:
int main()
{
func();
}
答案 2 :(得分:0)
你只是在主要功能中再次声明..
你需要调用该函数才能工作.. #include
extern int func()
int main(){
func();
}
/*external file with one function that I want to
import*/
#include<stdio.h>
int func(){
printf("Hello World Again\n");
}
答案 3 :(得分:0)
编辑:问题已经改变。
extern
仅用于外部变量。你只需要一个函数原型。
#include <stdio.h>
void func(void); /* <-- prototype */
int main(int argc, char * argv[])
{
func();
return 0;
}
void func(void){
printf("Hello World Again\n");
}
注意一些事情。 int func()
的原型在C中表示无参数检查 - 这与C ++不同。此外,您没有从函数返回任何内容,因此我将其替换为void func(void)