• iOS自定义结构体


    一、提要

    通过以官方的CGSize为例,自定义Objective-C中的结构体,并使用。

    二、CGSize

    1、系统定义的CGSize结构体

    struct CGSize {
        CGFloat width;
        CGFloat height;
    };

    注释:
    结构体的自定义

    struct 结构体名{
            类型名 成员名1;
            类型名 成员名2;
            ... ...
            类型名 成员名n;
    };

    typedef struct CG_BOXABLE CGSize CGSize;

    注释:
    使用typedef struct CG_BOXABLE CGSize CGSize给结构体定义别名

    2、CGSizeMake 结构赋值方法

    CG_INLINE  CGSize  CGSizeMake(CGFloat width, CGFloat height)
    {
       CGSize size; 
       size.width = width; size.height = height; 
       return size;
    }

    注释:

      * 这里CG_INLINE是一个宏:#define  CG_INLINE  static  inline,这是系统的一个宏,如果你不用这个宏,可以直接写成static inline CGSize CGSizeMake(CGFloat width, CGFloat height)。
      * inline 内联函数: 即
    在编译的时候将函数体替换函数调用,从而不需要将parameter,return address进行push/pop stack的操作,从而加速app的运行,然而,会增加二进制文件的大小。

    三、自定义结构体

    以自定义一个九宫格行列数为例

    struct JGGRowListNum {
        CGFloat row;
        CGFloat list;
    };
    typedef struct  JGGRowListNum JGGRowListNum; 
    CG_INLINE JGGRowListNum  JGGRowListNumMake (CGFloat row, CGFloat list) 
    {
    JGGRowListNum jGGRowListNum;
    jGGRowListNum.row = row; 
    jGGRowListNum.list = left; 
    return jGGRowListNum; 
    };  
  • 相关阅读:
    POJ 2506 Tiling
    POJ 2586 Y2K Accounting Bug
    POJ 2965 The Pilots Brothers' refrigerator (DFS)
    POJ 2499 Binary Tree
    POJ 3006 Dirichlet's Theorem on Arithmetic Progressions (素数)
    beautifulsoup 基本语法 含class属性查找小技巧class_
    xlrd库的使用
    pytest框架 里 fixture 参数化的方法
    ddt数据驱动
    mac电脑 pip安装包后 撞到了系统python里面的解决方法
  • 原文地址:https://www.cnblogs.com/lxlx1798/p/9303697.html
Copyright © 2020-2023  润新知