我知道在C/C++ 中有标识符在标识符中使用下划线.是否有在源代码文件名中使用它们的规则?
例如,对于使用下划线开头或结尾文件名有什么限制吗?或具有前下划线作为最后一个字符.c
或.h
扩展?双重下划线?
如果有的话,参考文献是值得赞赏的.
不可以.文件可以根据需要命名(假设底层文件系统支持名称) - C++和C标准都没有任何关系.标识符中有关于"_"的规则,是的,但这并不会延续到文件名之类的外部事物.
如果源文件是预处理程序#include
指令的主题,则C和C++标准指定文件名的最小要求集.C标准说:
6.10.2源文件包含
...
实现应为由一个或多个非数字或数字(6.4.2.1)组成的序列提供唯一映射,后跟一个句点(.)和一个非数字.第一个字符不应是数字.实现可以忽略字母大小写的区别,并在该句点之前将映射限制为八个重要字符.
...其中nondigit包含字母AZ,az 和下划线.
完全相同的文本(段落编号除外)也可以在C++标准,16.2源文件包含中找到.
除此之外,传递有效文件名的方法取决于操作系统,文件系统,编译器,链接器和编译工具链的其他部分.
这些天,我希望大多数现代系统几乎允许任何文件系统不直接禁止的东西.
C11标准的最终公开草案,n1570
C++ 11标准的最终公开草案,n3337