美国留学选择什么专业好?留学美国热门专业推荐
2019-06-26
更新时间:2024-06-11 01:51作者:小乐
许多C语言学习者也会了解一些C++语法。他们应该能够发现C语言和C++程序源文件的后缀名是不同的。 —— C 语言程序源文件的后缀名为“.c”,C++ 程序源文件的后缀名为“.c”。文件后缀通常是“.cpp”,“.h”后缀往往是头文件的后缀。
这些后缀名是怎么来的呢?
然而,在程序开发或者一些开源项目中,我们经常会看到一些带有“.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 __cplusplusextern \'C\' {#endif.#ifdef __cplusplus}#endif 基本上这样的头文件既可以被C语言程序包含,也可以被C++程序包含。有时,有些头文件不知道是否可以包含在C语言程序的上下文中,甚至没有后缀名。
其他此外,某些程序项目的源文件使用“.ii”、“.ixx”和“.ipp”作为后缀。此类文件通常专用于提供内联定义。还有一些源文件使用“.txx”、“.tpp”和“.tpl”作为定义模板的后缀。这些源文件通常包含在头文件中或直接包含在程序项目的上下文中。
编译器和工具通常不关心源文件扩展名
编译器和工具通常不关心源文件的后缀。不过,默认情况下,编译器和工具会根据源文件的后缀名来识别代码是用C语言、C++语言还是其他编程语言编写的。也就是说,如果编译器能够识别带有“.cpp”和“.cc”后缀的源文件,那么使用它们就可以了,因为它们可以告诉编译器源文件代码是用C++语言编写的。
小结本节讨论了程序开发中的几种常见的源文件后缀。可见它们其实并没有多大的意义。如果没有歧义,您甚至可以任意使用这些后缀。然而,更推荐的方法是保持项目的一致性。如果其他C++源文件以“.cc”为后缀,那么我们新定义的C++源文件使用“.cpp”源文件就不好了。
竖起大拇指然后走开
欢迎在评论区一起讨论、提问。文章均为手写、原创。他们每天用最简单的方式介绍C语言、Linux等嵌入式开发。如果你喜欢我的文章,就关注吧,你可以看到最新的更新和往期文章。未经许可禁止转载。