造轮子: C 语言跨平台小工具库

2023-02-28 17:31:17 +08:00
 Neur2n

因为工作中需要写跨平台的代码,所以把一些常用的小工具整合成了一个单头文件( single-header )库x.h,希望各位佬不吝赐教,一起交流。这个库还在不断加入新函数或是重构。

以下是我自己想的一些 FAQ:

Q:为什么用 C 而不是用 C++?
A:需要和其他语言(如 Python )接起来时,C 接口比较方便。另外最初版本是 C++写的,换成 C 就是想玩玩。

Q:为什么不用 C11 ?
A:因为 Visual Studio 要 2022 版才支持 thread 、atomic 等 C11 特性,我希望 x.h 尽可能兼容更多的编译器。

Q:跨什么平台?
A:目前只有 Linux 和 Windows 是测试过的,我希望能够兼容 macOS 、iOS 、Android 等,但是目前没有相关环境来测试。代码默认除了 Win32 就是 POSIX ,且尽可能用标准 C 中的接口。如果有其他平台的开发者希望合作开发或帮助测试,非常欢迎。

2684 次点击
所在节点    C
13 条回复
hsfzxjy
2023-02-28 17:33:42 +08:00
有 github 吗
HiCode
2023-02-28 17:33:54 +08:00
项目名称:x.h

项目地址: https://github.com/Neur1n/x.h

这么小的位置,我差点就想问一句链接在哪里了……
Neur2n
2023-02-28 17:35:51 +08:00
@HiCode 谢谢老哥帮忙发出来,确实太小了😂
hsfzxjy
2023-02-28 17:36:58 +08:00
@HiCode 啊这,完全没注意到😂
proxytoworld
2023-02-28 18:28:56 +08:00
能介绍一下干嘛的吗,一下没看出来
favourstreet
2023-02-28 18:38:46 +08:00
眨眼间已经到了需要单独解释为什么用 c 写程序的时代了
learningman
2023-02-28 19:31:17 +08:00
有个叫 melon 的库也是干这事儿的
Neur2n
2023-02-28 20:56:35 +08:00
@learningman 比不上 melon😂 我这只是把多个平台的功能封装成跨平台接口
adoyle
2023-02-28 21:08:48 +08:00
跨平台的底层语言,不如试试 Zig ,无缝衔接 C/C++。
https://ziglang.org/
rockcat
2023-02-28 22:52:43 +08:00
反正是不想碰 C++的,太复杂了,而且乱七八糟...很难找到头绪
zeromake
2023-03-01 09:27:44 +08:00
@adoyle 被 c/c++的字符串整吐了,完全不想用没有标准库封装的字符串的语言……(zig 已经明确说了不会有 string 容器)
Neur2n
2023-03-01 09:34:04 +08:00
@proxytoworld 提供一些小工具(获取文件大小、获取时间戳、日志打印等)、提供不同平台的统一接口(如 Windows 的线程和 Linux 的 pthread ),总的来说目标是所有工具都可以跨平台、跨编译器使用
junmoxiao
2023-03-01 17:14:14 +08:00
做大了就是个 tbox

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/919892

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX