美文网首页
结构体中的宏定义

结构体中的宏定义

作者: 历史漫步 | 来源:发表于2017-05-30 21:06 被阅读0次

下面代码是ACL库中的一个示例

 
 struct ACL_XML {
    /* public */
    int   depth;                    /**< 最大深度 */
    int   node_cnt;                 /**< 节点总数, 包括 root 节点 */
    int   root_cnt;                 /**< 根节点个数 */
    int   attr_cnt;                 /**< 属性总数 */
    ACL_XML_NODE *root;             /**< XML 根节点 */

    /* private */
    ACL_HTABLE *id_table;           /**< id 标识符哈希表 */
    ACL_XML_NODE *curr_node;        /**< 当前正在处理的 XML 节点 */
    ACL_DBUF_POOL *dbuf;            /**< 内存池对象 */
    ACL_DBUF_POOL *dbuf_inner;      /**< 内部分布的内存池对象 */
    size_t dbuf_keep;               /**< 内存池中保留的长度 */
    size_t space;                   /**< 在创建 xml 对象时已分配的内存大小 */

    unsigned flag;                  /**< 标志位: ACL_XML_FLAG_xxx */ 

    /**< 是否允许一个 xml 文档中有多个根节点,内部缺省为允许 */
#define ACL_XML_FLAG_MULTI_ROOT (1 << 0)

    /**< 是否兼容单节点中没有 '/' 情况 */
#define ACL_XML_FLAG_IGNORE_SLASH   (1 << 1)

    /**< 是否需要对文本数据进行 xml 解码  */
#define ACL_XML_FLAG_XML_DECODE     (1 << 2)

    /**< 创建 xml 对象时是否需要对数据进行 xml 编码 */
#define ACL_XML_FLAG_XML_ENCODE     (1 << 3)

    ACL_VSTRING *decode_buf;        /**< 当需要进行 xml 解码时非空 */

    /* public: for acl_iterator, 通过 acl_foreach 可以列出所有子节点 */

    /* 取迭代器头函数 */
    ACL_XML_NODE *(*iter_head)(ACL_ITER*, ACL_XML*);
    /* 取迭代器下一个函数 */
    ACL_XML_NODE *(*iter_next)(ACL_ITER*, ACL_XML*);
    /* 取迭代器尾函数 */
    ACL_XML_NODE *(*iter_tail)(ACL_ITER*, ACL_XML*);
    /* 取迭代器上一个函数 */
    ACL_XML_NODE *(*iter_prev)(ACL_ITER*, ACL_XML*);
};

作用

把宏定义放在结构体中,主要目的是方便阅读,提升代码的可读性。从语法层面上来看并没有什么特别含义。

相关文章

  • 结构体中的宏定义

    下面代码是ACL库中的一个示例 作用 把宏定义放在结构体中,主要目的是方便阅读,提升代码的可读性。从语法层面上来看...

  • C结构体和链表

    一,结构体变量定义及初始化 二,无名结构体 备注:无名结构体很少使用 三,宏定义结构体 四,结构体嵌套 五,结构体...

  • 1220学习总结

    复杂数据类型 1.结构体 2.结构体变量的初始化 3.无名结构体 4.宏定义结构体 5.结构体的嵌套 6.结构体数...

  • 结构体

    结构体定义* 结构体中的格式:* struch 结构体名* {* 结构体成员变量* }* 结构体中的特点* 1.结...

  • 结构体

    [toc] 结构体的定义方式 先定义结构体类型,再定义结构体变量 定义结构体类型的同时定义结构体变量 定义结构体类...

  • c语言结构体类型的多维数组的读取

    定义一个结构体 定义一个结构体数组 为结构体数组赋值 定义一个函数为结构体数组中的数组赋值

  • 结构体数组的定义

    结构体数组的定义 1、先定义结构体类型,再定义结构体数组 2、定义结构体类型的同时定义结构体数组 3、省略结构体类...

  • 结构体

    结构体有名定义 无名定义 结构体嵌套定义 结构体内存对齐 结构体成员初始化 结构体变量引用 结构体的有名定义:直白...

  • 慕课网-Linux C语言结构体-学习笔记

    Linux C语言结构体 编译指令:预处理,宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 逻辑运算符...

  • C#结构体,析构方法,跨程序访问

    结构体 结构体定义 结构体的语法格式: struct + 结构体名 { 结构体成员变量(相当于类中的字段) } 结...

网友评论

      本文标题:结构体中的宏定义

      本文链接:https://www.haomeiwen.com/subject/rtarfxtx.html