我知道有使用下划线的规则身份标识在 C/C++ 中 https://stackoverflow.com/a/228797/1995714。在源代码文件名中使用它们有什么规则吗?
例如,对于以下划线开头或结尾的文件名是否有任何限制?或者将下划线作为最后一个字符.c
or .h
扩大?双下划线?
如果有的话,欢迎参考。
如果源文件需要预处理#include
指令,则 C 和 C++ 标准指定对文件名的最低要求集。 C 标准说:
6.10.2 源文件包含
...
- 实现应为由一个或多个非数字或数字 (6.4.2.1) 后跟句点 (.) 和单个非数字组成的序列提供唯一的映射。第一个字符不能是数字。该实现可能会忽略字母大小写的区别,并将映射限制为句点之前的八个有效字符。
... 在哪里nondigit包含字母 A-Z、a-z并下划线.
完全相同的文本(除了段落编号)也可以在 C++ 标准中找到,16.2 源文件包含.
除此之外,有效文件名的传递取决于操作系统、文件系统、编译器、链接器和编译工具链的其他部分。
如今,我希望大多数现代系统都允许几乎所有文件系统未直接禁止的内容。
参考
- C11 标准的最终公开草案,n1570 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
- C++11 标准的最终公开草案,n3337 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)