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.

你需要包含到头文件,比如那个文件在d盘根目录,就这样写:
#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语言中如何在一个函数中调用在另个文件中定义的函数的主要内容,如果未能解决你的问题,请参考以下文章

c语言中,在一个自定义函数里面只能调用一个自定义函数吗?可以调用多个吗?如果可以怎么调用?

单片机 C语言,如何调用外部自定义函数。

C语言 如何在一个文件中调用另一个文件的函数 用头文件

java如何调用另个程序的main函数

如何在c语言中源文件调用另一个源文件的函数

C语言中如何引用其它C源文件中的函数?