如何调用另一个cpp文件中的子函数

时间:2021-12-02 07:25:04
我想在A.cpp文件中调用B.cpp文件中的一个子函数 int C(),在A.cpp中该怎么实现
A.cpp中
int main()
{
...
int C()
...
}
这个main函数中或者之前是不是得包含B.cpp,并声明int c(),具体应该怎么写,希望高手指点一下,谢谢

13 个解决方案

#1



新建一个B.h,其中
extern int c()

在A.cpp中
#include "B.h"
int main
{
  ....
  c(); // 直接使用
 ....
}

#2


在A中声明一个c函数头就行,链接程序会自动找到B.obj中的c函数的

A.cpp 
int c();声明
main()
{
}

B.cpp
int c()定义
{
}

#3


引用楼主 yilaozhuang 的帖子:
我想在A.cpp文件中调用B.cpp文件中的一个子函数 int C(),在A.cpp中该怎么实现 
A.cpp中 
int main() 

... 
int C() 
... 

这个main函数中或者之前是不是得包含B.cpp,并声明int c(),具体应该怎么写,希望高手指点一下,谢谢 

首先那个B.cpp必须跟这个A.CPP在一个工程文件里 
然后就是要把C()函数的声明写在一个头文件里 然后这个.h文件要被包含在c()函数的实现的.cpp文件中 
最后直接包含.h文件进来调用就行了

#include <xxx.h>
int main() 

... 
C() 
... 


#4


#include "*.cpp" #include "*.c" #include "*.h" 都可以

#5


楼注注意 不要被误导 不需要include B 任何形式的文件 不管是.h 还是cpp 只要在a.cpp中声明了就行 
可以试一下 
a.cpp 和 b.cpp在一个工程中编译就ok 运行显示 ccccc
a 不需要incude b的任何东西,链接器会做

a.cpp
int c(void);
void main(void)
{
  c();
}

b.cpp
#include <iostream>
using namespace std;
int c(void)
{
cout << "ccccc\n";
return 1;
}

#6


太感谢楼上的各位了,程序实现可以通过不同的语句和方法实现,看到上面各位的回复还是受益匪浅,十分感谢。
不过还是
楼注注意 不要被误导 不需要include B 任何形式的文件 不管是.h 还是cpp 只要在a.cpp中声明了就行 
可以试一下 
a.cpp 和 b.cpp在一个工程中编译就ok 运行显示 ccccc 
a 不需要incude b的任何东西,链接器会做 

这个回答我最喜欢用,跟我感觉的差不多,就采用这个老大的办法了。

#7


在A.cpp中声明要调用的B.CPP中的函数,
extern int c();

#8


引用 6 楼 yilaozhuang 的回复:
太感谢楼上的各位了,程序实现可以通过不同的语句和方法实现,看到上面各位的回复还是受益匪浅,十分感谢。 
不过还是 
楼注注意 不要被误导 不需要include B 任何形式的文件 不管是.h 还是cpp 只要在a.cpp中声明了就行 
可以试一下 
a.cpp 和 b.cpp在一个工程中编译就ok 运行显示 ccccc 
a 不需要incude b的任何东西,链接器会做 

这个回答我最喜欢用,跟我感觉的差不多,就采用这个老大的办法了。


这样用不安全,你搜一下CSDN以前的帖子,也有问这个的。
你的b.cpp中的函数少,只有一个函数。不会有什么问题。当
函数多了,之间也有调用关系时,你就知道了。有时候你都不
知道你错在哪了。

#9


还是听1,3楼的话,5楼之言言别人误导人,其言却在误导人。8楼可谓一针见血,拨乱反正了,呵呵!

#10



单做的话,直接放在一个工程里就可以了...不需要包含啊,头文件之类的.
但是,写程序是要讲求规范的,尤其是在真正的项目中,最重要的是在维护中.
所以,在头文件中声明是最好的做法.!!!

#11


引用 1 楼 huayehanshan 的回复:
C/C++ code新建一个B.h,其中externintc()

在A.cpp中
#include"B.h"intmain
{
  ....
  c();//直接使用....
}

正解

#12


用extern int c()是正解。
帮我解决问题了,谢谢。

#13


还是在头文件里再包含好点吧

#1



新建一个B.h,其中
extern int c()

在A.cpp中
#include "B.h"
int main
{
  ....
  c(); // 直接使用
 ....
}

#2


在A中声明一个c函数头就行,链接程序会自动找到B.obj中的c函数的

A.cpp 
int c();声明
main()
{
}

B.cpp
int c()定义
{
}

#3


引用楼主 yilaozhuang 的帖子:
我想在A.cpp文件中调用B.cpp文件中的一个子函数 int C(),在A.cpp中该怎么实现 
A.cpp中 
int main() 

... 
int C() 
... 

这个main函数中或者之前是不是得包含B.cpp,并声明int c(),具体应该怎么写,希望高手指点一下,谢谢 

首先那个B.cpp必须跟这个A.CPP在一个工程文件里 
然后就是要把C()函数的声明写在一个头文件里 然后这个.h文件要被包含在c()函数的实现的.cpp文件中 
最后直接包含.h文件进来调用就行了

#include <xxx.h>
int main() 

... 
C() 
... 


#4


#include "*.cpp" #include "*.c" #include "*.h" 都可以

#5


楼注注意 不要被误导 不需要include B 任何形式的文件 不管是.h 还是cpp 只要在a.cpp中声明了就行 
可以试一下 
a.cpp 和 b.cpp在一个工程中编译就ok 运行显示 ccccc
a 不需要incude b的任何东西,链接器会做

a.cpp
int c(void);
void main(void)
{
  c();
}

b.cpp
#include <iostream>
using namespace std;
int c(void)
{
cout << "ccccc\n";
return 1;
}

#6


太感谢楼上的各位了,程序实现可以通过不同的语句和方法实现,看到上面各位的回复还是受益匪浅,十分感谢。
不过还是
楼注注意 不要被误导 不需要include B 任何形式的文件 不管是.h 还是cpp 只要在a.cpp中声明了就行 
可以试一下 
a.cpp 和 b.cpp在一个工程中编译就ok 运行显示 ccccc 
a 不需要incude b的任何东西,链接器会做 

这个回答我最喜欢用,跟我感觉的差不多,就采用这个老大的办法了。

#7


在A.cpp中声明要调用的B.CPP中的函数,
extern int c();

#8


引用 6 楼 yilaozhuang 的回复:
太感谢楼上的各位了,程序实现可以通过不同的语句和方法实现,看到上面各位的回复还是受益匪浅,十分感谢。 
不过还是 
楼注注意 不要被误导 不需要include B 任何形式的文件 不管是.h 还是cpp 只要在a.cpp中声明了就行 
可以试一下 
a.cpp 和 b.cpp在一个工程中编译就ok 运行显示 ccccc 
a 不需要incude b的任何东西,链接器会做 

这个回答我最喜欢用,跟我感觉的差不多,就采用这个老大的办法了。


这样用不安全,你搜一下CSDN以前的帖子,也有问这个的。
你的b.cpp中的函数少,只有一个函数。不会有什么问题。当
函数多了,之间也有调用关系时,你就知道了。有时候你都不
知道你错在哪了。

#9


还是听1,3楼的话,5楼之言言别人误导人,其言却在误导人。8楼可谓一针见血,拨乱反正了,呵呵!

#10



单做的话,直接放在一个工程里就可以了...不需要包含啊,头文件之类的.
但是,写程序是要讲求规范的,尤其是在真正的项目中,最重要的是在维护中.
所以,在头文件中声明是最好的做法.!!!

#11


引用 1 楼 huayehanshan 的回复:
C/C++ code新建一个B.h,其中externintc()

在A.cpp中
#include"B.h"intmain
{
  ....
  c();//直接使用....
}

正解

#12


用extern int c()是正解。
帮我解决问题了,谢谢。

#13


还是在头文件里再包含好点吧