This answer指向引用资料,指出您不应使用两个下划线后跟一个大写字母。
然后是this comment to this question ,第一个来自@metal,它说你在创建包含守卫时也不能使用这样的名字。
但是,我很好奇为什么 Xcode 在自动为新的 C++ 文件创建包含保护时会完全这样做:
#ifndef __DataSource__File__
#define __DataSource__File__
#include <iostream>
#endif
这是 Xcode 放置在新 C++ 文件顶部的标准生物盘;在本例中,项目名为“DataSource”。如果项目名称以数字开头,则 Xcode 会将此数字替换为第三个下划线。
如果用户写这个是非法的,那么 Xcode 写这个不是非法的吗?
最佳答案
If it's illegal for a user to write this, then isn't it illegal for Xcode to write this?
的确,尽管“非法”这个词可能有点过分了。如果这是默认行为,那么将其配置为生成狡猾的 include 守卫的人都不知道您不应该这样做。遗憾的是,并非每个软件开发人员(甚至是开发工具开发人员)都完全了解他们使用的语言和工具。
很多人喜欢用奇怪的下划线模式来装饰他们的包含守卫,即使他们不应该这样做。据推测,他们看到它在标准库头文件中完成(因为它应该是这样的,因为这是保留此类名称的那种东西)并假设他们出于某种原因应该做同样的事情。
关于c++ - 在 #define 的开头使用下划线作为包含守卫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16204801/