typedef const struct __CFString * a1;

在上面的 typedef 声明中,a1 被定义为指向常量结构 __CFString 的指针。

这里的“__”是什么意思?

然后我创建一个新定义作为 a2,如下所述。

typedef const struct CFString * a2;

那么,a1 与 a2 有何不同?

有帮助吗?

解决方案

首先,下划线 __CFString 是名称的一部分,所以 struct __CFStringstruct CFString 是不同的类型,就像 struct XXCFStringstruct CFString 是不同的类型。

其次,任何以双下划线开头的名称都保留用于实现。换句话说,您不能使用以双下划线开头的名称,否则会有名称冲突的风险。

这是另一个包含更多详细信息的答案: 在 C++ 标识符中使用下划线的规则是什么?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top