急!!!C高手进一下!引用外部函数>???

来源:百度知道 编辑:UC知道 时间:2024/05/14 13:24:50
a1.cpp程序.
#include <stdio.h>
void prin();
{
printf("abvcasj;d");
}
a2.cpp程序:
#include <stdio.h>
extern void prin();
void main()
{
prin();
}
我想在第二程序里面调用第一个程序里面的prin()函数.
编译时没错,但一运行时就出现这样的错:
a2.obj : error LNK2001: unresolved external symbol "void __cdecl prin(void)" (?prin@@YAXXZ)
Debug/a2.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
这是怎么回事?
另外要调用外部函数应该怎么调用?
我的程序是在VC++6.0中运行的.
其实是C程序来的.

有一些错误,帮你改一下
a1.cpp程序
#include <stdio.h>
void prin() //这里的分号要去掉
{
printf("abvcasj;d");
}
a2.cpp程序:
#include <stdio.h>
#include "a1.cpp" //要包含a1.cpp文件
extern void prin();
void main()
{
prin();
}

外部函数~
在函数定义时,默认的是外部函数,即可以被其他文件调用(有的会加上关键字extern以表明该函数为外部函数,但不加这个关键字也默认为外部函数,故一般不用加)。
在其他文件中的函数调用本函数时,只要在前面加上extern声明本函数为外部函数,就可以直接使用了。
比如:
A2.c中内容如下:
#include<stdio.h>
get_string(char str[10]) /*定义get_string函数extern省略,但仍可被其他文件调用*/
{
gets(str);
}
则在A1.c中要调用本函数则要加上extern关键字。如下:
main()
{
extern get_string(char str[10]);/*声明在本函数中将要用到在其他文件中定义的函数*/
...
}
另外:主调函数中的关键字extern如果也省略的话,写成:
main()
{
get_string(char str[10]);
...
}
也一样用。这就成了“函数原型”,函数原型会通知编译系统,该函数在本文件中稍后定义,或在其他文件中定义。

当然也自己做成.h文件再用#include“包含”进来,但似有点麻烦而不必要。一般的函数直接调