zoukankan      html  css  js  c++  java
  • glib学习笔记-基本知识

    glib 基本知识

    基本类型

    函数

    #define G_GINT64_CONSTANT(val) (val##L)              
    #define G_GUINT64_CONSTANT(val) (val##UL)
    #define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val)
    

    类型和值

    • 新类型,不是标准C的类型: gboolean, gsize, gsszie, goffset, gintptr, guintptr.
    • 保证跨平台一致的整数类型:gint8, guint8, gint16, guint16, gint32, guint32, gint64, guint64.
    • 比标准C对应的更好用的类型:gpointer, gconstpointer, guchar, guint, gushort, gulong.
    • 与标准C的类型一致,但为了基本类型的完整性而定义:gchar, gint, gshort, glong, gfloat.

    大部分类型都十分易懂,值得留意的是gpointer即是void 指针,gconstopointer是const void指针

    标准宏

    函数

    • #define G_IS_DIR_SEPARATOR()
      是否路径分隔符 返回TRUE 或者FALSE

    • #define MIN()
      取较小者 MIN(1,2)

    • #define MAX()
      取较大者

    • #define ABS()
      取绝对值

    • #define CLAMP()
      CLMAP(x, low, high) x比low小取low , 比high大取high , 介于两者返回x

    • #define G_STRUCT_MEMBER_P(struct_p, struct_offset)
      ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
      返回从Struct_p偏移struct_offset个bytes的gpointer指针

    • #define G_STRUCT_MEMBER(member_type, struct_p, struct_offset)
      ((member_type) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))

    • #define G_STRUCT_OFFSET(struct_type, member)
      ((glong) offsetof (struct_type, member))

    • #define G_STRUCT_OFFSET(struct_type, member)
      ((glong) ((guint8) &((struct_type) 0)->member)

    返回member的偏移值

    类型和值

    • #define G_OS_WIN32
    • #define G_OS_UNIX
    • #define G_DIR_SEPARATOR
    • #define G_DIR_SEPARATOR_S
    • #define G_SEARCHPATH_SEPARATOR
    • #define G_SEARCHPATH_SEPARATOR_S
    • #define TRUE
    • #define FALSE
    • #define NULL
    • #define G_MEM_ALIGN
    • #define G_CONST_RETURN

    各个宏的意义显而易见

    类型转换宏

    函数

    • #define GINT_TO_POINTER()
    • #define GPOINTER_TO_INT()
    • #define GUINT_TO_POINTER()
    • #define GPOINTER_TO_UINT()
    • #define GSIZE_TO_POINTER()
    • #define GPOINTER_TO_SIZE()

    各个宏的意义显而易见

  • 相关阅读:
    圈水池 nyoj 78 凸包算法
    凸包算法入门
    nyoj 633 幂
    软件下载地址
    概率论与数理统计
    迷宫最短路径 问题
    将项目发布至开发环境测试环境的方法
    一些JavaScript技巧
    随机生成10个不重复的0-100的数字
    Git添加远程库和从远程库中获取(新手傻瓜式教学)
  • 原文地址:https://www.cnblogs.com/raintwice/p/6802243.html
Copyright © 2011-2022 走看看