1

Consider the following code:

enum TableSections {
    kSection1 = 0,
    kSection2 = 1,
    };

标识符的范围是什么TableSections?如果此代码在实现文件中,则TableSections仅在该编译单元中定义,全局定义还是其他?

答案是针对 Objective-C(llvm、clang 等?)还是针对所有 C99 或更大的集合的通用答案?

4

1 回答 1

3

枚举是 C,所以我们不是在谈论任何特定于 Objective-C 的东西。


枚举不参与链接。它们只是象征性的常数。它们在可见/可访问的任何地方定义。如果那是一个编译单元,那么枚举当然只能在该编译单元内使用(但不是因为它是static、 local 或其他任何东西 - 仅仅是因为编译器需要查看源代码(文本定义)才能扩展枚举成员。

于 2013-04-20T19:26:00.563 回答