簡體   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