C语言如何使用外部文件中的函数

在看谭浩强的书时讲到extern时的一个例子,但运行不起来
file1.c中的内容:
#include<file2.c>
int A;
main()
{
int power(int);
int b=3,a,c,d,m;
printf("enter the number a and its power m:\n");
scanf("%d,%d",&a,&m);
c=A*b;
printf("%d*%d=%d\n",A,b,c);
d=power(m);
printf("%d*%d=%d",A,m,d);
}
file2.c中的内容:
extern A;
power(int n);
{
int i,y=1;
for(i=1;i<=n;i++)
y=A;
return(y);
}
请高手看下问题在哪?

    请使用预编译指令 #include。加入外部文件,就可以使用外部文件的函数了。

    #include放在代码文件头,用于告诉编译器,文件中包含的头文件,属于预处理文件的一部分 。

    语法为:
    #include <iostream.h> (这句是程序编译时搜索系统目录文件)
    #include “HName.h" (这句是程序编译时搜索当前项目的文件)

    例如:

    //函数实现  a.c文件:
    int add(int x, int y){
        return x+y;
    }
    //主文件  main.c文件:
    #include <stdio.h>
    #include "a.c"   //引入外部函数
    int main(){
        int i;
        i = add(1,2);
        printf("%d",i);
        return 0;
    }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-30
解决什么了,你现在代码的问题还很多。
file1.c中的内容:

#include<file2.c>//这样你以后写程序还会出错。要建个h头文件,把函数声明放到里面就行。
int A;
main()//没类型可以运行吗。用void main
{
int power(int);//这个声明放到头文件里
int b=3,a,c,d,m;
printf("enter the number a and its power m:\n");
scanf("%d,%d",&a,&m);//你输入的不是A,是a.。。。
c=A*b;//c的值是0
printf("%d*%d=%d\n",A,b,c);//由于A是全局变量,值默认为0。
d=power(m);
printf("%d*%d=%d",A,m,d);
}
file2.c中的内容:
extern A;//类型要带上,extern int A;
power(int n);
{
int i,y=1;
for(i=1;i<=n;i++)
y=A;
return(y);
}
file1.c中的内容:
#include<file2.c>
int A;
main()
{
int power(int);
int b=3,a,c,d,m;
printf("enter the number a and its power m:\n");
scanf("%d,%d",&a,&m);
c=A*b;
printf("%d*%d=%d\n",A,b,c);
d=power(m);
printf("%d*%d=%d",A,m,d);
}
file2.c中的内容:
extern A;
power(int n);
{
int i,y=1;
for(i=1;i<=n;i++)
y=A;
return(y);
}本回答被提问者采纳
第2个回答  2011-05-30
这个设计到链接库, 可以查查资料。
第3个回答  2011-05-29
A无初始值追问

自己解决了,第一行改成#include"file2.c" 就行了,A是外部变量,值由下面的scanf输入,书上面的程序有几处错误

相似回答