关于C++语言头文件函数调用的问题

、浅浅笑 2019-03-01 03:14:25
如题:

我用SDL写了软件的loading界面,但是都写在了一个cpp文件里,我想把里边自己定义的函数放进h头文件里实现多文件调用,但是我这个cpp文件里定义的函数之间有相互调用的关系,这样放进头文件里能直接用吗?他们之间该怎么互相调用?求教,谢谢~
...全文
210 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
WNs_ACE 2019-03-01
  • 打赏
  • 举报
回复
补发代码,在test.cpp文件忘记删除一些宏声明了
//test.cpp
#include "test.h"
int test1(int a, int b)
{
return test_Max(a, b);
}
int test_Max(int a, int b)
{
return a > b;
}
WNs_ACE 2019-03-01
  • 打赏
  • 举报
回复 1
不太明白楼主的意思,贴出对应的代码,这样比较好理解,我理解的.h文件和.cpp文件,.h文件是函数声明,而.cpp文件是函数实现,不管.cpp文件中的函数怎样互相调用,只要函数互相调用的时候不要出现是死循环就好了,反而是有了.h文件声明,.cpp文件中函数调用的时候更加方便。例如:

//test.h
#ifndef TEST_H
#define TEST_H
#include <iostream>
int test_Max(int a, int b);
int test1(int a, int b);
#endif


//test.cpp
#ifndef TEST_H
#define TEST_H
#include "test.h"
int test1(int a, int b)
{
return test_Max(a, b);
}
int test_Max(int a, int b)
{
return a > b;
}
#endif

看到上面的.cpp文件中,在test1函数依旧可以调用test_Max函数,因为在.h头文件中已经声明了test_Max函数了,所以在.cpp文件中就可以直接使用了,因为编译器会在编译.cpp文件和.h文件的时候,会先根据.h文件的声明知道,在.cpp文件中的test1函数中调用了test_Max函数的链接函数名字(你可以这样简单的理解吧),然后编译器通过编译了.cpp文件后,生产了中间代码的时候就知道了test_Max的实体了,然后链接器在通过test1函数中的test_Max函数的链接函数名字找到test_Max的实体,然后就变成了一个完整的test1函数,流程简单大概是这样子吧,实际会更加复杂一点。
轻箬笠 2019-03-01
  • 打赏
  • 举报
回复
最简单的是在.h文件里面声明下
extern void func();

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧