结构体
2022-01-06 本文已影响0人
林希品
- 这里CG_INLINE是一个宏:#define CG_INLINE static inline,这是系统的一个宏,如果你不用这个宏,可以直接写成static inline CGSize CGSizeMake(CGFloat width, CGFloat height)。
- inline 内联函数: 即在编译的时候将函数体替换函数调用,从而不需要将parameter,return address进行push/pop stack的操作,从而加速app的运行,然而,会增加二进制文件的大小。
定义结构体
//定义结构体
struct LXPRowListNum {
CGFloat row;
CGFloat list;
};
typedef struct LXPRowListNum LXPRowListNum;
赋值结构体
//赋值结构体
CG_INLINE LXPRowListNum LXPRowListNumMake (CGFloat row, CGFloat list)
{
LXPRowListNum lxpRowListNum;
lxpRowListNum.row = row;
lxpRowListNum.list = list;
return lxpRowListNum;
};
==
可以写一起:定义结构体 赋值结构体
//定义结构体
struct LXPRowListNum {
CGFloat row;
CGFloat list;
};
typedef struct LXPRowListNum LXPRowListNum;
//赋值结构体
CG_INLINE LXPRowListNum LXPRowListNumMake (CGFloat row, CGFloat list)
{
LXPRowListNum lxpRowListNum;
lxpRowListNum.row = row;
lxpRowListNum.list = list;
return lxpRowListNum;
};
内联函数 CG_INLINE/inline
CG_INLINE (return值类型) (方法名) (入参)
{
return值类型
}
样式:
CG_INLINE (return值类型) (方法名) (入参)
{
return 值类型
}
🌰 例子:
CG_INLINE CGSize CGSizeMake (CGFloat width, CGFloat height)
{
CGSize size; size.width = width; size.height = height; return size;
}
🌰 例子:
CG_INLINE void ADD_NOTIFICATION(NSString *name, id target, SEL action, id object)
{
[[NSNotificationCenter defaultCenter] addObserver:target selector:action name:name object:object];
}
ADD_NOTIFICATION(BEGINA_NOTIFICATION_SUCCESS, self, @selector(beginASuccess:), nil);