编程视界:你每天都会碰到的源文件后缀名,背后有什么故事?

Posted 一起学编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程视界:你每天都会碰到的源文件后缀名,背后有什么故事?相关的知识,希望对你有一定的参考价值。

很多C语言学习者多多少少也会了解一些C++的语法,应该能够发现,C语言和C++程序源文件的后缀名是不同的——C语言程序源文件后缀名为“.c”,而C++程序源文件后缀名一般为“.cpp”,“.h”后缀名则常常是头文件的后缀名。

百家号:IT刘小虎

这些后缀名是怎么产生的呢?

可是,在程序开发,或者一些开源项目中,我们还常会看到一些后缀名为“.hpp”,”.cc”,“.cxx”的源文件,让人很迷惑,这些不同后缀名的源文件到底有什么不同呢?以及,这些后缀名是怎么产生的呢?

多样的源文件后缀名

事实上,在一开始,C++程序的源文件后缀名也是“.c”和“.h”,这与C语言程序源文件的后缀名完全一样。这就带来了一些问题,其中一个比较显著的问题就是编译器无法轻松的区分某个源文件里的程序究竟是使用C++编写的,还是C语言编写的。

因此,后来C++程序源文件的后缀名不再使用“.c”了,有些使用“.C”后缀名以区别于C语言程序,还有些C++源文件则使用“.c++”,“.cc”,“.cxx”作为后缀名。

“.C”与“.c++”后缀名的适用性不够广

不过,由于“.C”与“.c++”后缀名的适用性不够广,比如有的编译器不区分后缀名的大小写,以及有些系统不支持文件名使用“+”符号,这两种后缀名的C++源文件越来越少了。

Dos 和 Windows 系统的编译器偏向使用“.cpp”(c plus plus, c++)作为 C++ 源文件的后缀名,考虑到 Windows 系统的市场占有率极高,因此为了统一性,以“.cpp”作为源文件后缀名的C++程序项目相当多。

再来看头文件,基本上和源文件的历史一致,曾经出现过后缀名为“.H”,“.h++”,”.h”以及“.hxx”和“.hpp”的头文件。但是,与源文件不太一样的时,今天仍然有许多C++程序仍然使用“.h”后缀名的头文件。

今天仍然有许多C++程序仍然使用“.h”

相信读者在一些“.h”后缀名的头文件里见到过下面这样的宏控制命令:

#ifdef __cplusplus

extern "C" 

#endif

...

#ifdef __cplusplus



#endif

基本上,这样的头文件既可以被C语言程序包含,又可以被C++程序包含。有时,有些头文件不知道自己是否可以被包含在C语言程序的上下文中,甚至连后缀名都没有。

其他

另外,有些程序项目的源文件使用“.ii”,”.ixx”,“.ipp”作为后缀名,这类文件一般专用于提供内敛定义。还有些源文件使用“.txx”,“.tpp”,“.tpl” 作为后缀名,用于定义模板。这些源文件一般会被包含在头文件里,或者直接包含在程序项目的上下文中。

编译器和工具通常并不关心源文件的后缀

编译器和工具通常并不关心源文件的后缀名,不过在默认状态下,编译器和工具会根据源文件的后缀名识别出代码就是是C语言还是C++语言,还是其他编程语言编写的。

换句话说,如果编译器能够识别“.cpp”和“.cc”后缀名的源文件,那么使用哪一个都是可以的,因为它们都能告诉编译器该源文件代码是由C++语言编写的。

小结

本节讨论了几种在程序开发中常见的源文件后缀名,可见,它们其实并无太多含义。如果不会造成歧义,甚至可以任意使用这些后缀名。不过,比较推荐的做法是在项目中保持统一,如果其他C++源文件都是以“.cc”作为后缀名的,那么我们新定义的C++源文件要是使用“.cpp”源文件就不是很好了。

点个赞再走吧!

最后,对于学习编程或者在工作想升职的程序员兄弟,如果你想更好的提升你的编程能力帮助你提升水平!笔者这里或许可以帮到你~

C语言C++编程学习交流圈子,QQ群:829164294点击进入】微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

以上是关于编程视界:你每天都会碰到的源文件后缀名,背后有什么故事?的主要内容,如果未能解决你的问题,请参考以下文章

01网络面经:你每天都用的HTTP协议,到底是什么鬼?

你每天都在使用的HTTP协议,到底是什么鬼?

原来不只是fastjson,这个你每天都在用的类库也被爆过反序列化漏洞!

如何在DOS下批量改后缀名

你每天都在看抖音,到底在看什么?

lib文件用啥软件打开 后缀名lib是啥格式文件