转自:C++中各种文件后缀名的区别
.c 与 .cc 与 .cpp 与 .hpp 与 .h 与 .cxx后缀名源文件,到底有什么区别?

很多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++源文件越来越少了。

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

再来看头文件,基本上和源文件的历史一致,曾经出现过后缀名为“.H”,“.h++”,".h"以及“.hxx”和“.hpp”的头文件。但是,与源文件不太一样的时,今天仍然有许多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++中各种文件后缀名的区别相关推荐

  1. linux中 改文件后缀名,linux 下批量更改文件后缀

    这几天在研究hadoop.在安装过程中需要java支持.然而在安装jdk1.6后.java不能正常运行.在经过一翻谷爹度娘的搜索后,发现要把lib/和jre/lib/下面的以pack为后缀的文件转换为 ...

  2. 计算机名称更改不生效,修改文件后缀名无效怎么办?Win7系统修改文件扩展名无效的解决方法...

    我们经常需要在电脑中修改文件后缀名,而这些文件仅仅是通过后缀名来分别它们的不同.如果我们修改文件的后缀名发现无效,并没有修改为其它的格式,那么说明系统中文件的后缀名没有显示,我们需要将其显示再去修改. ...

  3. 【学习日志】2022.09.02 (C++)strcmp和stricmp、strcmpi三者之间的区别、C语言判断文件后缀名、ZENO Audio Update、TEN MINUTES PHYSICS

    (C++)strcmp和stricmp.strcmpi三者之间的区别 (strcmpi在Windows C标准库实现,但不在GNU C标准库实现) #include <string.h> ...

  4. 网页制作过程中隐藏的文件后缀名怎么显现?

    1.在win7里面,首先打开"我的电脑"(计算机) 2.然后打开左上角的"组织" 3.接着就出现了一个下拉菜单,点击"文件夹和搜索选项" 4 ...

  5. 如何批量修改文件夹中图片的后缀名

    原文链接: https://blog.csdn.net/lshcc01/article/details/95233258 如何批量修改文件夹中图片的后缀名 方法:编写脚本 1.在图片所在的文件夹里新建 ...

  6. 根据文件后缀名移动文件 及 按照txt文件中的文件名移动需要的文件到新文件夹

    按照txt文件中的文件名移动需要的文件到新文件夹 import os import shutil ''' 程序目的:按照 目标文件名.txt 文件,从源文件夹 path1 中把 目标文件 挪到目标文件 ...

  7. c语言文件后缀名怎么隐藏起来,win10中怎样查看被隐藏的文件后缀名 win10显示文件后缀名的设置方法...

    win10是一款不错的操作系统,但是有很多刚装的用户有很多疑问,那么win10中怎样查看被隐藏的文件后缀名?下面小编带来win10显示文件后缀名的设置方法,希望对大家有所帮助. win10显示文件后缀 ...

  8. php页面文件后缀名,PHP中获取文件扩展名的N种方法

    PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式: 第1种方法: function get_extension($file) { substr(strrchr($file, '. ...

  9. Linux下的文件及文件后缀名

    1.Linux文件的扩展名: 一谈到文件类型,大家就能想到Windows的文件类型,比如file.txt.file.doc.file.sys.file.mp3.file.exe等,根据文件的后缀就能判 ...

  10. 转--各种文件后缀名与打开方式大全

    各种文件后缀名与打开方式大全 .aiff 声音文件 Windows media Player .!!! Netants 暂存文件 Netants .ani 动画鼠标 .arj 压缩文件 ARJ .av ...

最新文章

  1. 这么简单的目标检测赛题,竟然设置260万现金奖!
  2. 国外10大IT网站和博客网站
  3. 全球所有货币币种汇总
  4. java求数列的最大子段和_天下无双的公考必考题 数量关系: 最值问题②(构造数列)...
  5. 10.Verilog状态机使用方法
  6. 在Qt中使用C++代码创建界面
  7. 微软正式发布Azure Functions 2.0
  8. 994. 腐烂的橘子
  9. android 发送短信 广播 demo,向Android模拟器打电话发短信的简单方法
  10. Python的网络编程[1] - FTP 协议[1] - 使用 pyftplib 建立 FTP 服务器
  11. php accept-length,php中Accept-Length获取不到下载文件的大小
  12. Andriod Atom x86模拟器启动报错
  13. python关键词提取源码,python实现textrank关键词提取
  14. linux initrd usb热插拔,8.3 发行注记 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
  15. Python利用shelve模块设计简单数据库程序
  16. 【 Codeforces Round #301 (Div. 2) D】Bad Luck Island【概率DP】
  17. mars java安卓视频教程下载_mars老师[Android开发视频教学].01_18 文件下载 源码
  18. BackgroundWorker的参数传递
  19. Python爬虫系列之得物小程序data算法
  20. grabber的使用_Google Grabber —使用PHP找出您的域名在Google中列出了多少页

热门文章

  1. 蓝牙耳机无法与计算机连接,蓝牙耳机与电脑无法配对、或者连接不上
  2. Qualcomm笔记
  3. throw java_THROW,JAVA的throw和throws怎么用!
  4. lasso回归python代码_LASSO回归代码实现 坚韧不拔|静水流深|读书|写作|博雅|数据分析|Python|商业|独立·独特·自立门户 kebook...
  5. 创建第一个air程序转自 IT168 静水流深
  6. jq 获取本地ip地址
  7. 【转】Laravel - 从百草园到三味书屋 From Apprentice To Artisan目录
  8. zkPorter:Layer-2 的可组合可扩展性
  9. hDC转PostScript转PDF
  10. 删除:大数据取舍之道 - 电子书下载(高清版PDF格式+EPUB格式)