Effective OC读书笔记一:头文件、字面量、预处理、枚举

Effective OC读书笔记一:头文件、字面量、预处理、枚举,第1张

要点:

要点:

注意:变量一定要同时用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_INVALID

switch与enum的一般使用,如下所示:

BT_CONNECTION_TYPE  enumConnectionType = CONNECTION_TYPE_INVALID

enumConnectionType = 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"

比如这个,我就直接写在头文件中了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7914523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存