繁体   English   中英

具有单字母扩展名的C ++头文件有何特别之处?

[英]What's special about C++ header files with single-letter extensions?

C ++标准在16.2节“源文件包含”中包含以下规则。 它使单字符文件扩展名变得特殊。

该实现应为由一个或多个 数字数字 (2.11)后跟一个句点( . )和单个 数字组成的序列提供唯一的映射。 第一个字符不能是数字 该实现可以忽略字母大小写的区别。

这些文件名得到什么特殊待遇? 头文件包含上下文中的映射是什么?如果唯一,为何如此重要?

就是说,以回旋的标准方式,即使基础文件系统不支持9.1文件名,头文件(例如"abyssinia.h"应映射到文件系统中的唯一文件名。 8.3限制的DOS样式,或者Unix的最旧版本,文件名最多包含14个字符。 系统必须确保将这些名称唯一地映射到不同的文件。

它还说该实现可能忽略大小写(这也意味着它可能不会忽略大小写)。 如果忽略大小写,则"ABYSSINIA.H""abyssinia.h"将映射到同一文件; 如果不忽略大小写,那么它们将是两个单独的文件。 请注意,至少在默认情况下,Windows和Mac OS X都具有保留大小写但不区分大小写的文件系统。

我不确定为什么存在单个非数字限制; 这大概意味着.hpp扩展名不能保证映射到唯一名称。

这都是对实施的限制; 它通常不会影响您作为程序员(除非您是编写实现的程序员-意味着C ++编译器的实现),除了您可能应该确保头名称是唯一的(无论大小写)并最大程度地实现可移植性,标题名称应以.h或其他一些单字母扩展名结尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM