4

该答案指向参考材料,指出您不应使用两个下划线后跟一个大写字母。

然后是@metal对这个问题的第一个评论,它说你在创建包含防护时也不能使用这样的名称。

但是,我很好奇为什么 Xcode 在自动为新的 C++ 文件创建包含防护时会这样做:

#ifndef __DataSource__File__
#define __DataSource__File__

#include <iostream>

#endif 

这是 Xcode 放置在新 C++ 文件顶部的标准 biolerplate;在这种情况下,项目被命名为“DataSource”。如果项目名称以数字开头,那么 Xcode 将用第三个下划线替换该数字。

如果用户写这个是非法的,那么 Xcode 写这个不是非法的吗?

4

2 回答 2

4

如果用户写这个是非法的,那么 Xcode 写这个不是非法的吗?

事实上,虽然“非法”可能是一个相当强烈的词。如果这是默认行为,那么无论谁将其配置为生成狡猾的包括警卫,都不知道您不应该这样做。可悲的是,并不是每个软件开发人员(即使是那些制作开发工具的人)都完全了解他们使用的语言和工具。

很多人喜欢用奇怪的下划线图案来装饰他们的 include 守卫,尽管他们不应该这样做。据推测,他们看到它在标准库头文件中完成(应该如此,因为这是保留这些名称的那种东西)并假设他们出于某种原因应该做同样的事情。

于 2013-04-25T01:28:57.053 回答
3

Xcode 是错误的。以下划线后跟大写字母的名称和包含两个连续下划线的名称保留给实现。一直都是。

于 2013-04-25T01:28:27.807 回答