因为工作中需要写跨平台的代码,所以把一些常用的小工具整合成了一个单头文件( 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 中的接口。如果有其他平台的开发者希望合作开发或帮助测试,非常欢迎。
Q:x.h的目的?
A:提供跨平台的小工具,以及对一些平台特定接口的跨平台统一化,例如:
![]() | 1 hsfzxjy 2023-02-28 17:33:42 +08:00 via Android ![]() 有 github 吗 |
2 Q4h7388nR28s95fa 2023-02-28 17:33:54 +08:00 |
![]() | 5 proxytoworld 2023-02-28 18:28:56 +08:00 能介绍一下干嘛的吗,一下没看出来 |
![]() | 6 favourstreet 2023-02-28 18:38:46 +08:00 via Android 眨眼间已经到了需要单独解释为什么用 c 写程序的时代了 |
![]() | 7 learningman 2023-02-28 19:31:17 +08:00 有个叫 melon 的库也是干这事儿的 |
![]() | 8 Neur2n OP @learningman 比不上 melon 我这只是把多个平台的功能封装成跨平台接口 |
![]() | 9 adoyle 2023-02-28 21:08:48 +08:00 跨平台的底层语言,不如试试 Zig ,无缝衔接 C/C++。 https://ziglang.org/ |
10 rockcat 2023-02-28 22:52:43 +08:00 反正是不想碰 C++的,太复杂了,而且乱七八糟...很难找到头绪 |
11 zeromake 2023-03-01 09:27:44 +08:00 via Android @adoyle 被 c/c++的字符串整吐了,完全不想用没有标准库封装的字符串的语言……(zig 已经明确说了不会有 string 容器) |
![]() | 12 Neur2n OP @proxytoworld 提供一些小工具(获取文件大小、获取时间戳、日志打印等)、提供不同平台的统一接口(如 Windows 的线程和 Linux 的 pthread ),总的来说目标是所有工具都可以跨平台、跨编译器使用 |
![]() | 13 junmoxiao 2023-03-01 17:14:14 +08:00 做大了就是个 tbox |