要点:
注意:变量一定要同时用static和const来声明,如果试图修改const修饰符所声明的变量,那么编译器会报错。
而static修饰符意味着该变量仅在定义次变量的编译单元中可见。编译器每收到一个编译单元,就会输出一份目标文件(在OC语境下,编译单元通常指的是每个类的实现文件,即.m)。
假如此变量不加static,编译器就会为他创建一个外部符号,如果另一个编译单元也声明了同名变量,则会报错。
要点:
若是枚举不需要相互结合,则应使用NS_ENUM来定义。
使用Switch来定义枚举(使用状态机时最好不写default分支,并确保Switch语句能正确处理NS_ENUM里面的所有样式):
要点:
C++中枚举的声明及使用
◆声明
在C++头文件中进行enum的声明,如下:
typedef enum tagConnectionType{
CONNECTION_TYPE_INVALID = -1, //invalid value
CONNECTION_TYPE_GENERAL = 0, //General connection
CONNECTION_TYPE_XMAN, //Xman connection
CONNECTION_TYPE_KILL, //kill connection
CONNECTION_TYPE_RESTART, //restart connection
}BT_CONNECTION_TYPE
声明的一般用法
声明时一般会规定一个无效值进行起始
例如CONNECTION_TYPE_INVALID = -1, //invalid value
有效值是一般以0进行设置,之后的类型值将默认+1
例如:
CONNECTION_TYPE_GENERAL = 0
CONNECTION_TYPE_XMAN = 1
CONNECTION_TYPE_KILL = 2
...
◆使用
使用上级声明的类型BT_CONNECTION_TYPE进行枚举变量的创建,如下所示:
BT_CONNECTION_TYPE enumConnectionType = CONNECTION_TYPE_INVALIDswitch与enum的一般使用,如下所示:
BT_CONNECTION_TYPE enumConnectionType = CONNECTION_TYPE_INVALIDenumConnectionType = GetBTConnectionType()
switch(enumConnectionType)
{
case CONNECTION_TYPE_GENERAL:
//执行XXX *** 作
break
case CONNECTION_TYPE_XMAN:
//执行XXX *** 作
break
case CONNECTION_TYPE_INVALID:
//执行XXX *** 作
break
default:
break;
}
直接写在头文件里就行了。// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
typedefenum __loginElement
{
LOGINNAME,
LOGINPWD,
}_loginElement
#import <Foundation/Foundation.h>
#import "ParserForMainReturn.h"
比如这个,我就直接写在头文件中了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)