typedef int INT; // 给int定义别名INT数组
typedef int ARR[4]; ARR a1;//定义了一个长度为4的整形数组函数
//typedef 定义类型spa
// typedef 给基本数据类型 构造类型 枚举类型 函数指针 起别名.net
// 函数指针: 指向函数的指针指针
#import <Foundation/Foundation.h>orm
int sum(int a,int b){get
return a+b;io
}import
int main(int argc, const char * argv[]) {变量
// 调用函数
int s1 = sum(10, 119); // 函数名存储的是函数的首地址
NSLog(@"%d",s1); // 129
// 函数指针p,p指向的是sum函数的首地址
int (*p)(int a, int b);
p = sum; // 给p赋初始值
int s2 = (*p)(10,119);
NSLog(@"%d",s2); // 129
typedef int (*p1)(int a, int b); //给返回值是int而且有2个参数的函数起别名,别名是p1,p1是一种类型
// 定义无参无返回值的block变量
void (^block1)(); // block1是一个返回值是void没有参数的block变量
block1 = ^{
NSLog(@"hahah");
};
// 使用typedef
typedef void(^block2)(); // 给返回值是void 没有参数的代码块起一个别名,别名是block2;
// block2 = ^{
// NSLog(@"222");
// }; 会报错
block2 bb; // bb是一个block变量
bb = ^{
NSLog(@"bb");
};
bb();
// 给有参数没有返回值的block起别名
typedef void(^blockType)(int); // blockType 是一个类型
blockType b1;
b1 = ^(int a) {
NSLog(@"a = %d",a);
};
b1(10);
// 给有参数有返回值的block起别名
typedef int(^blockType2)(int ,int);
blockType2 b2 = ^ (int x,int y) {
return x + y;
};
int sum = b2(10,5);
NSLog(@"%d",sum);
}
return 0;
}