c++基础知识
C++学习笔记
有源文件.c不就够了吗?为什么要有头文件.h?
要回答这个问题,首先我们需要理解C++编译模式。
重要:理解C++编译模式 (函数声明和函数定义、符号表、链接)
首先理解下这句话:一个C++程序可以分多个cpp文件来实现。
C++ 语言支持"分别编译"(separatecompilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的 .cpp 文件里。
然后,C++的编译是相对独立的,每个cpp都可以单独的被编译(虽然可能因为有未知函数的导致无法运行)。最后要使得整个程序跑起来只需要 “链接”。
.cpp 文件里的东西都是相对独立的,在编译(compile)时不需要与其他文件互通,只需要在编译成目标文件后再与其他的目标文件做一次链接(link)就行了。比如,在文件 a.cpp 中定义了一个全局函数 "void a(){}",而在文件 b.cpp 中需要调用这个函数。即使这样,文件 a.cpp 和文件 b.cpp 并不需要相互知道对方的存在,而是可以分别地对它们进行编译,编译成目标文件之后再链接,整个程序就可以运行了。
头文件是和#include一起配合来提高效率的工具而已。
如果一个源文件中使用了很多函数,一个一个声明是很麻烦的,也考验程序员的记忆力。所以把一些函数声明放在一个头文件.h中。如果一个程序员需要使用这些函数,则通过 #include "xxx.h" 一句话就很方便可以完成多个函数的声明。
头文件里一般只写一些函数声明,不写函数实现。
为了通过#include (预编译命令:只是复制插入代码) 方便的声明多个函数。这样接下来就可以直接使用这个库的所有函数了(而不用担心有没有漏掉声明
一些小知识和使用规范
#include "xxx.h"
和 #include <xxx.h>
的区别?
系统库用<> , 用户自己写的用 ""
防止重复导入同一个头文件
#ifndef HEADER_FILE
#define HEADER_FILE
...
#endif
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!