gpt4 book ai didi

c - glib 是否可以以不显眼的方式使用?

转载 作者:太空狗 更新时间:2023-10-29 17:02:07 24 4
gpt4 key购买 nike

我在找 good general-purpose library for C在标准 C 库之上,并看到了一些使用 glib 的建议.它在您的代码中有多“突兀”?为了解释我所说的突兀是什么意思,我在 reference manual 中注意到的第一件事是basic types section ,心里想,“什么,我要开始使用 gintgchar 和 gprefixing geverything gin gmy gcode gnow 吗?”

更一般地说,您是否可以只在本地使用它而代码中的其他函数或文件不必知道它的使用?它是否会强制对您的代码进行某些假设,或对您的编译/链接过程施加限制?全局数据结构是否在运行时占用大量内存?等

最佳答案

关于 glib 最让人难以相信的一点是,任何使用它的程序或库都无法抵抗资源耗尽。当 malloc 失败时,它无条件地调用 abort 并且您无法解决这个问题,因为整个库都是围绕其内部分配函数 g_malloc “不能失败”

至于丑陋的“g”类型,您绝对不需要任何类型转换。这些类型 100% 等同于标准类型,基本上只是 glib 早期(错误)设计的产物。不幸的是,glib 开发人员缺乏对 C 的理解,这个 FAQ 证明了这一点:

Why use g_print, g_malloc, g_strdup and fellow glib functions?

"Regarding g_malloc(), g_free() and siblings, these functions are much safer than their libc equivalents. For example, g_free() just returns if called with NULL.

(来源:https://developer.gnome.org/gtk-faq/stable/x908.html)

仅供引用,free(NULL) 是完全有效的 C,并且做完全相同的事情:它只是返回。

关于c - glib 是否可以以不显眼的方式使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17447802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com