[理解] C++ 中的 源文件 和 头文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[理解] C++ 中的 源文件 和 头文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1962字,纯文字阅读大概需要3分钟。
内容图文
我是学 C井 的, 现在在工作中主要使用的编程语言是 Java, 还记得当初在第一次接触到 Cpp 的时候, 听到的第一个概念就是 Cpp 的头文件和源文件, 当初理解了好久, 死活都弄不明白, 现在好歹是理解一点了, 做个笔记
在说头文件和源文件之前, 先来说一下 Cpp 大概的源文件编译过程吧, 新建一个文件 Source.cpp, 然后写
#include <iostream>
using namespace std; int main(){
cout << "hello world" << endl; return 0; }
1): 编译开始前, 预处理语句 #include 会将 iostream 文件里的内容拷贝到当前的文件里, 然后使用 iostream 里的 cout 函数
2): Source.cpp 文件会被挨个单独编译为 .obj 文件 这个文件在项目的 debug 文件夹下
3): 然后 linker 会去找 cout 函数的定义, 因为 #include 已经将 iostream 拷贝到 Source.cpp 文件下了, 所以 linker 会在 Source.obj 里查找 cout 的定义, 并且跟 main 函数里调用的 cout 函数联系起来, 构成一个 .exe 可执行文件
compiling(编译) 和 linker(链接) 会将我们编写的 Cpp 项目文件构建成一个抽象语法树, ,再编译成 CPU 可读的机器码, 然后变成一个可执行文件
所以, 只有 源文件 .cpp 会被编译器编译, 而头文件 .h 是不会被编译的
头文件 Header.h ----> 就是将重复到的函数抽象出来放在一个文件中, 这个文件也要进行相应的归类
源文件 Source.cpp --> 就是编译器进行编译的文件,
非要理解的话, 头文件就是存放 Java 里实现 interface 的函数的文件, 注意, 是已经实现, 不是 interface , 在 Java 中
public interface Math{ public int function(int a, int b); }
然后在实现这个接口
public class MathImpl implement Math{ public int function(int a, int b){ int result = a * b; return result; } }
但是在 Cpp 的头文件里, 则写的可能是
int function(int a, int b){ int result = a * b; return result; }
当源文件想要调用这个乘法的函数的时候, 只要
#include "Hread.h" int main(){ function(1, 2); return 0; }
这样在编译的时候就会变成
int function(int a, int b){ int result = a * b; return result; } int main(){ function(1, 2); return 0; }
所以头文件大概就是这样用的吧, 不过我想 .cpp 文件也能实现这样的效果啊, 为什么非要专门用一个 .h 文件呢? 我想大概一个是为了规范, 还有一个就是 头文件不会被编译, 减少了出错的几率.
浅薄之谈, 欢迎纠错
内容总结
以上是互联网集市为您收集整理的[理解] C++ 中的 源文件 和 头文件全部内容,希望文章能够帮你解决[理解] C++ 中的 源文件 和 头文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。