好的,这与问题
“Constants in Objective C”有关.
我创建了Constants.h及其相应的Constants.m文件:
// Constants.h extern int const BOOKS; typedef enum SSDifficultyLevel { EASY = 0,MEDIUM = 1,HARD = 2 } SSDifficultyLevel; // Constants.m int const BOOKS = 66;
我的问题:在Constants.h中枚举的枚举是否可以?代码正在编译好(到目前为止没有警告或错误),但我想知道这是否是正确的方法,因为相关问题中提供的解决方案涉及拆分常量的定义和声明.
谢谢.
解决方法
好吧,常量和枚举用于不同的目的(虽然有一些明显的重叠).所以,除非你有充分理由打破这一规则,否则不要偏离人们的期望.
就个人而言,我不太喜欢“全局常量标题”,因为您通常应该将这些声明与它们的用法相关联.例如,Apple的框架通常在与它们相关的接口附近声明枚举,并且通知在与该类相同的标题中命名.
除此之外,你已经正确地宣布了事情.
如果您使用c或objc,那么您将需要修复该extern,因为名称可能不同,这可能导致链接错误.
像这样的东西应该做的伎俩:
#if defined(__cplusplus) #define MONExternC extern "C" #else #define MONExternC extern #endif
然后你会像这样声明BOOKS:
MONExternC int const BOOKS;
另外一个注意事项,这可能只是在您的示例中用于说明:这些标识符非常短,并且很容易导致与其他标识符的冲突.