c语言中如何在一个函数中调用在另个文件中定义的函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中如何在一个函数中调用在另个文件中定义的函数相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
void main()
extern void enter_string(char str[]);
extern void delete_string(char str[], char ch);
extern void print_string(char str[]);
char c;
char str[80];
enter_string(str);
scanf("%c", &c);
delete_string(str, c);
print_string(str);
编译结果:
file1.obj : error LNK2001: unresolved external symbol _print_string
file1.obj : error LNK2001: unresolved external symbol _delete_string
file1.obj : error LNK2001: unresolved external symbol _enter_string
Debug/file1.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.
#include<d:\\1.c>
然后下面就可以调用1.c里面的函数了
-物联网校企联盟技术部 参考技术A 另一个文件与这个文件放到同一个工程里,一起编译,编译器就会自动链接到一起 参考技术B 你必须要先包含该文件的头文件才行。否则用外部变量声明也没用的 参考技术C 另外的文件编译并和此文件连接了没追问
不会啊,文件都编写完啦,然后编译和运行时有啥需要注意的
参考技术D 一、前提条件:1、两个文件必须编入同一个可执行文件;
2、被调用函数必须是全局函数,即不能是static函数。如果有static修饰,那么必须写在头文件中,并被另一个文件引用。
二、声明:
1、可以声明在头文件中,并在调用文件中引用该头文件;
2、可以直接在调用文件声明,形式为
extern RET_TYPE FUNC_NAME(PARAM_LIST);
其中extern非必须,但一般都会写上,表示这个是其它文件定义的。
三、调用:
声明后,直接调用即可,和本文件函数调用方式并无区别。
注意事项:在部分C编译器中,对于函数声明检查并不严格,不声明直接调用也只是报警告,不会影响调用结果。 但推荐使用声明,可以减少出错概率。
如何在c语言中源文件调用另一个源文件的函数
在源文件A1.c中调用A2.c 中的函数
有两种方法:
1.在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就可以了,例如:
在A2.c中:有函数void A2(){...};
在A1.c中:在文件前头增加一行:void A2();就可以了
2.把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include "A2.h"就可以了
以上两种方法,在A1.c中都可以正常的调用,就跟在A2.c中调用一样。
其实函数默认是外部的,只要在其他文件中声明就能使用; 但是注意如果在前面加上static , 就只能在本文件中使用了, 不能再被其他的文件调用。
怎样编写头文件
1.一个.h文件要 对应有一个.c文件,这样写助于查看和修改程序。比如a.h 和 a.c;:
在.h文件中
#ifndef __A_H_
#define __A_H_
#include<stdio.h>
void trans2(double B) ;
double trans1() ;
#endif
2.把相应的函数定义写在.c文件中
3.再在main.c文件开头添加#include "a.h"
以上是关于c语言中如何在一个函数中调用在另个文件中定义的函数的主要内容,如果未能解决你的问题,请参考以下文章