
正文
c语言跨文件调用外部函数调用,c跨文件使用的全局变量
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言不同文件的函数如何相互调用
有两种方法:1。在Ac中有完整的函数定义,在Ac中添加一下要用到的函数原型就可以了,例如:在Ac中:有函数void A2(){...};在Ac中:在文件前头增加一行:void A2();就可以了 2。
C语言可以在程序中调用其他文件中的函数。在大型的程序软件开发中,为了代码的可读性,或多人同时进行代码开发,可以各写自己的源文件,然后,在编译时,将多个源文件链接到一起,就可以形成最终的目标程序。
在一个文件里面的函数,如果要调用其他文件里的函数的话,你肯定要先include一下函数所在的文件,比如在a.c里面想调用b.c里面的函数,你在a.c里面要加上#include b.c才行。
一种方式 是 通过 环境变量 INCLUDE, PATH, LIB 里的设置,编译器 会到 那里去找。用双引号括起的方法 写 包含 文件名字 可以 带 详细的 路径。
题目明显提示你没有定义“add”呀,要求你查看“add”哦!再个你程序还是有问题的吧,如果你把它放到不同的源文件中一起编译连接的话,还会出现重复定义的错误吧。
相关问答
Q1: C语言中怎么调用外部函数?
外部函数extern时声明这个函数为外部函数,本文件不做定义,只调用,编译不会出错,但不能运行(没有函数实体)。如果想有运行结果就必须将函数实体包含进来,所以文件包含和extern是配合使用的。
首先需要输入想要调用的函数。然后当输入一个括号后,即可观察他的参数。接着在对应的参数中输入参数值。然后,系统会发生一个警告。接着需要调用它相应的头文件。
C语言中,函数调用的一般形式为:函数名(实际参数表)对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。
请使用预编译指令 include。加入外部文件,就可以使用外部文件的函数了。include放在代码文件头,用于告诉编译器,文件中包含的头文件,属于预处理文件的一部分 。
main()中的extem a;改为extem int a; extem用于将用于将其他源文件的函数或变量的作用范围扩大到整个程序。
C 语言的函数是能相互调用的, 但在调用函数前,必须对函数的类型进行说明,就算是标准库函数也不例外。
Q2: C语言调用其他文件中的函数为什么报错?
所以在testc里面只是引用包含app_fifo.h这个头文件的话,因为函数app_fifo_put没有被定义,后来执行这个函数时就会报错 undefined symbol app_fifo_put(未定义符号app_fifo_put)。
函数定义在 文件r.c 里。编译时 2个c文件要 一起编,或 把 r.c 先编译成 r.obj, 链接时 链接进去。
我用vc2010测试了你的代码,没有连接问题,完全正确。但是,如果从工程中,将ds3_seqStackcpp移除,再Build,将得到和你一样的链接错误。因此,猜测你是没有将ds3_seqStackcpp加入工程。
可能有如下原因:库函数拼写错误。如:printf,scanf等。定义的函数名在调用时,函数名拼写错误。在执行函数时可能函数体本身的问题。
lnode node;这里定义了一个结构型变量node,node.next这个指针未初始化,指向不确定的内存地址。insert_l函数里这句q-next = p-next;最后print_l函数访问这个指针指向的数据时出错。
)函数,如果用vc编译,那么就是用的windows环境下的32位编程,所以就应该加入windows.h这个头文件,告诉vc编译器这个名字空间,错误提示是由于你的sleep()函数中s要大写,改成大写就能编译通过了。希望对你有所帮助。
关于c语言跨文件调用外部函数调用和c跨文件使用的全局变量的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







