为什么最好使用 Glib 数据类型(例如 `gint` 而不是 `int`)? [复制]

2024-04-24

可能的重复:
为什么glib要重新定义类型? https://stackoverflow.com/questions/1819561/why-does-glib-redefine-types

在 GTK+ 2.0 教程中,我可以阅读here http://developer.gnome.org/gtk-tutorial/stable/c325.html以下关于数据类型的声明:

您可能在前面的示例中注意到了一些需要解释的事情。您看到的 gint、gchar 等分别是 int 和 char 的类型定义,它们是 GLib 系统的一部分。这样做是为了解决计算时对简单数据类型大小的严重依赖。

我不明白这个解释的最后一部分。为什么使用 Glib 数据类型更好?


正如教程提到的,这是为了确保可移植性。在新系统上构建使用 glib 的代码时,您只需使用 typedef 修改头文件,而不是使用这些类型的代码。

C99 标准添加了固定宽度类型(int8_t、uint32_t 等),这将使 glib 类型过时,但 glib 早于 C99 标准,这可能就是它拥有自己的一组类型的原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么最好使用 Glib 数据类型(例如 `gint` 而不是 `int`)? [复制] 的相关文章

  • 了解 C 中函数指针的 typedef

    当我阅读其他人的代码时 我总是有点困惑 这些代码具有指向带有参数的函数的指针的 typedef 我记得不久前 当我试图理解用 C 编写的数值算法时 我花了一段时间才得到这样的定义 那么 您能否分享一下关于如何为函数指针编写良好的 typed
  • SQL 数据类型 - 如何存储年份?

    我需要在数据库中插入年份 例如 1988 1990 等 当我使用日期或日期时间时 数据类型 它显示错误 我应该使用哪种数据类型 常规的 4 字节 INT 太大了 浪费空间 您没有说明您正在使用什么数据库 因此我无法推荐特定的数据类型 每个人
  • typedef 如何用于函数指针

    我想我可能患有可怕的 意外程序员 病 至少在 typedef 和函数指针方面是这样 因此 我一直在尝试涉及这些的各种组合 以根据我得到的所有输出来分析结果 但当我不断尝试不同的组合时 我现在没有分析结果 而是迷失在过程中 我希望你们能帮我解
  • `typedef typename Foo::Bar Bar' 的模板声明

    我在声明模板类型时遇到了很大的困难 如下所示 include
  • Hive - 通过聚合跨组的值来创建映射列类型

    我有一个看起来像这样的表 customer category room date 1 A aa d1 1 A bb d2 1 B cc d3 1 C aa d1 1 C bb d2 2 A aa d3 2 A bb d4 2 C bb d4
  • 在项目 .d.ts 定义文件中使用 @types 定义

    我正在尝试为我的项目编写一个 d ts 文件来定义一些全局接口 但是 我在该定义文件中使用非全局库类型时遇到问题 特别是我试图引用的 RxJs 对我来说不起作用 我认为最有效的方法是使用三斜杠引用标签来导入 RxJ 的类型 但这不起作用
  • 是否可以使函数接受给定参数的多种数据类型?

    编写函数时 我必须声明输入和输出数据类型 如下所示 int my function int argument 是否可以声明我的函数接受 int bool 或 char 类型的变量 并且可以输出这些数据类型 non working examp
  • 类型衰减——它是什么以及为什么会出现?

    我很惊讶类型衰减在 SO 或其他地方没有得到很好的解释 也许我没有使用正确的术语进行搜索 或者也许我没有正确理解整个事情 我的问题是 它是什么 它是如何 为什么 到达那里的 它的规则是什么 如果你想知道我为什么问 下面是我的哭泣型腐烂故事
  • 什么是 lub(null, Double)?

    表15 25 B http docs oracle com javase specs jls se8 html jls 15 html jls 15 25在 JLS 版本 8 中表示条件表达式的类型 true null 0 0 is lub
  • 运营商部分应用

    如果我想在字符末尾添加一个空格以返回列表 如果我不传递任何参数 我将如何通过部分应用程序来完成此操作 还有类型是 space Char gt Char 由于使用 和 运算符出现 解析错误 我在末尾添加空格时遇到问题 到目前为止我所拥有的是
  • 打开文件选择器对话框时出现 Glib-GIO-ERROR

    我在 Windows 7 中使用 GTK3 codeblcks IDE glade3 在我的应用程序中 我有一个按钮 单击该按钮应打开一个 gtk file chooser dialog 但给出填充错误 Glib GIO 错误 系统上未安装
  • Oracle BLOB 与 VARCHAR

    我需要在表的一列中存储一个 大 SQL 查询 我想使用BLOB场地 需要明确的是 我想存储查询 而不是其结果 最好使用什么 BLOB or a VARCHAR 或者也许还有别的什么 另一种选择是 CLOB 对于文本数据 使用 CLOB 比使
  • “date $1”参数化查询中的 PostgreSQL 语法错误

    尝试参数化我的 SQL 查询 使用 libpq 函数PQexec参数 http www postgresql org docs current static libpq exec html 我陷入了语法错误 SELECT date 1 错误
  • 使用 postgresql DB 存储 NULL 值需要多少磁盘空间?

    假设我的表上有一列定义了以下内容 MyColumn smallint NULL 存储 0 1 或其他值等值应该需要 2 个字节 1 但是如果我将 MyColumn 设置为NULL 需要多少空间 需要0字节吗 出于管理目的或每列 行是否有一些
  • 防止被 0 除的 Typescript 类型

    我正在使用打字稿创建一个用于培训目的的计算系统 但在除法过程中出现打字错误 您知道如何解决吗 type Variable value number resolve gt number type NoZeroVariable value Om
  • 如何判断Python对象是否是字符串?

    如何检查 Python 对象是否是字符串 常规字符串或 Unicode Python 2 Use isinstance obj basestring 对于要测试的对象obj Docs https docs python org 2 7 li
  • 类 GADT 类型变量的未来角色?

    A 昨天的问题 https stackoverflow com q 41135212 3072788有一个定义HList 来自HList https hackage haskell org package HList 0 4 1 0 doc
  • 是否允许将类模板类型参数键入相同的名称?

    这似乎可以在 MSVC 中按预期编译甚至工作 但它是合法的 C 代码吗 它是否能保证执行此处所期望的操作 即将模板类型导出到结构体的同名用户 template
  • std::map 中包含 typedef 类型?

    在 C 中执行以下操作是个好主意吗 typedef std map
  • C++ 模板 typedef

    我有课 template

随机推荐