[b][size=large]##static 关键字用来优化初始化变量之类代价高的操作。[/size][/b]
[b][size=large]##struct 是一种可以包含多个自变量的自定义类型, 在ruby中,和Struct类似。[/size][/b]
[b][size=large]##typedef 使用类型定义。每一次想定义一个点的时候都要输入struct Point, Obj-C中提供一个便捷的方法,就是使用结构体typedef。[/size][/b]
[b][size=large]##enum 枚举.[/size][/b]
void someFunction()
{
//不论调用多少次 x只会创建一次
static Expensive *x = [[Expensive alloc] initWithData:..];
//操作x
}
int main(int argc,char *argv[])
{
someFunction(); //x在someFunction中创建
someFunction(); //x已经存在,不会再次创建
return 0;
}
[b][size=large]##struct 是一种可以包含多个自变量的自定义类型, 在ruby中,和Struct类似。[/size][/b]
//定义一个结构体
struct Point
{
float x;
float y;
};
//声明结构体实例
struct Point p;
p.x = 10;
p.y = 10;
//复合结构体
struct Line
{
struct Point start;
struct Point end;
};
[b][size=large]##typedef 使用类型定义。每一次想定义一个点的时候都要输入struct Point, Obj-C中提供一个便捷的方法,就是使用结构体typedef。[/size][/b]
#import <Foundation/Foundation.h>
//声明结构体
typedef struct
{
float x;
float y;
} Point;
int main(int argc,const char *argv[])
{
//声明点变量
Point p;
//给结构体成员赋值
p.x = 10;
p.y = 10;
//使用这个点
moveCursorToPoint(p);
return 0;
}
[b][size=large]##enum 枚举.[/size][/b]
//创建枚举类型
enum MyEnum
{
Value1,
Value2,
Value3
};
//使用枚举
enum MyEnum foo;
foo = Value1;
//或者函数
enum MyEnum myFunction();
//作为函数参数
void myFunction(enum MyEnum foo);
//枚举实际值是由编译器决定的,默认是整型。从0开始,往后递增。也可以强制给枚举成员赋值
enum MyEnum
{
Value = 20,
Value = 13,
Value = 155
}
//配合typedef使用
enum MyEnumType
{
Value1,
Value2,
Value3
};
typedef enum MyEnumType MyEnum;
//使用
MyEnum foo;
foo = Value1;