文档章节

一个cpp文件能不能包含另外一个cpp文件

种地瓜
 种地瓜
发布于 2016/10/01 00:35
字数 364
阅读 569
收藏 1

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

 

在前几天的一个面试中,有一个题目是

 

一个cpp文件能不能包含另外一个cpp文件,会有什么样的问题?

 

我看着题目,谁这么做啊,我没这么做过,肯定不知道这其中会出现的问题,当即答我不知道会出现什么问题,因为我也没试过

 

回来一查资料,用编译器一写,就会发现

多重定义了,相互冲突了

到网上查资料,分析

一个程序到编写代码到最冲呈现给用户的结果,就是编译-连接的过程

若有文件1.cpp,2.cpp  其中2.cpp中包含了1.cpp

从编译的角度来说,源文件都是编译各自的文件,2.cpp包含了1.cpp那么生成的目标文件2.obj也是包含了1.cpp的结果,而1.cpp编译产生1.obj,那么,当他们在链接的时候肯定会产生重复定义的错误

所以,一般源文件都会只包含系统的头文件和用户自定义的头文件,而用户自定义的头问津主要是定义一些结构体之类的。

 

那么,如果2.cpp需要调用1.cpp的函数呢  

使用extern

//1.cpp

void func1()

{

}

void func1()

{

}

 

2.cpp

extern void func1();

extern void func2();

 

void min()

{

        //调用1.cpp中的函数

}

上一篇: 堆和栈的区别
下一篇: void *指针
种地瓜
粉丝 10
博文 177
码字总数 45450
作品 0
深圳
程序员
私信 提问
加载中
请先登录后再评论。
visual C++ 在 win 10 系统中的兼容性解决

对于C(C++)编程语言的初学者来讲,一般所使用的开发环境都是visual C++ 6.0。现在大部分人的电脑都是安装的win 10 系统,虽然win 10 能向下兼容,但是visual C++ 6.0却在win 10 系统中存在...

osc_b0nm4mbd
2018/06/29
11
0
C++———库函数cstring及string方法解读

1.string与cstring区别   <string>是C++标准库头文件。包含了拟容器class std::string的声明(不过class string事实上只是basic_string<char>的typedef),用于字符串操作。   <cstring>......

osc_6umsdbug
2019/04/23
12
0
Qt工作笔记-moc的认识

Qt 本身不是一种编程语言,它是C++编写的一个框架。通过使用一个叫做MOC (Meta-Object Compiler)的预处理器来扩展标准的C++语言,从而实现信号和槽等特性。Qt编写的程序可以使用Clang、GCC、...

抖音hzcya
06/25
0
0
extern “C”

  在很多C/C++头文件中,你可能会经常看到使用extern “C”{}包含起来的代码。这种语法的存在是为了使C和C++代码能够兼容。兼容?C++对C本来不就是兼容的吗?确实,在语法层面,C++支持几乎...

dake
2014/01/29
14
0
MFC 应用程序向导

MFC 应用程序向导的应用程序类型 项目样式 指示应用程序的结构和显示是标准 MFC、Windows 资源管理器、Visual Studio 还是 Office 样式。 有关更多信息,请参见 创建 Windows 资源管理器样式...

Amamatthew
2014/06/14
4
0

没有更多内容

加载失败,请刷新页面

加载更多

还在用Swagger(丝袜哥)生成接口文档?我推荐你试试它.....

JApiDocs是一个无需额外注解、开箱即用的SpringBoot接口文档生成工具。 编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后...

路人甲Java
07/09
0
0
智能仓储的独角兽逻辑

智能仓储的主要应用市场在哪里?客户的付费意愿和付费能力如何? 1、仓储设备具备标准化和通用化特点 由于电商和新零售的快速发展,轻工业品零售仓库的需求量大幅增加。而中国又是全球轻工业...

logiter
2019/08/23
14
0
可是小腿哪能扭过大腿

父亲是一个特别勤苦的人,他从不睡懒觉,每天天麻麻亮,或是下地干活,或是在家搞副业,或是拿着铁锨、粪筐,到路边,到村子周围,到牲畜常出入的地方,去拾粪蛋子,为庄稼积攒肥料,父亲不仅...

瑾123
14分钟前
6
0
一个volatile跟面试官扯了半个小时

《安琪拉与面试官二三事》系列文章,本文是此系列第三篇 一个HashMap能跟面试官扯上半个小时 一个synchronized跟面试官扯了半个小时 欢迎关注Wx公众号:【安琪拉的博客】—揭秘Java后端技术,...

osc_6ls9vwji
14分钟前
0
0
内网渗透靶机-VulnStack 2

WEB服务器:windows2008系统 外网网卡IP:192.168.1.152 内网网卡IP:10.10.10.80 域成员:windows server 2003系统 网卡IP:10.10.10.200 域控服务器:windows server 2008系统 网卡IP:192...

dnsil
07/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部