All checks were successful
modern-c / build (Debug, aarch64-linux-gnu) (push) Successful in 16s
modern-c / build (Debug, mipsel-linux-gnu) (push) Successful in 11s
modern-c / build (Debug, arm-linux-gnueabihf) (push) Successful in 15s
modern-c / build (Debug, host.gcc) (push) Successful in 11s
modern-c / build (Release, aarch64-linux-gnu) (push) Successful in 11s
modern-c / build (Release, arm-linux-gnueabihf) (push) Successful in 11s
modern-c / build (Release, host.gcc) (push) Successful in 12s
modern-c / build (Release, mipsel-linux-gnu) (push) Successful in 12s
一个更加现代化的C库
atomic
支持原子操作的整型
- mc_atomic_int8_t
- mc_atomic_int16_t
- mc_atomic_int32_t
- mc_atomic_int64_t
- mc_atomic_uint8_t
- mc_atomic_uint16_t
- mc_atomic_uint32_t
- mc_atomic_uint64_t
#include <modern-c/prelude.h>
#include <stdio.h>
int main() {
mc_atomic_int32_t a1 = mc_atomic_int32_t_init();
mc_atomic_int32_t a2 = mc_atomic_int32_t_init_with_value(11);
printf("%d %d\n", a1->load(a1), a2->load(a2));
a1->store(a1, 12);
printf("%d %d\n", a1->load(a1), a2->load(a2));
mc_atomic_int32_t_destroy(&a1);
}
mc_ptr
智能计数指针
#include <modern-c/prelude.h>
#include <stdio.h>
void my_free(void*p) {
free(p);
}
int main() {
// nullptr
mc_ptr p1 = mc_ptr_init();
// 默认的释放函数为free
mc_ptr p2 = mc_ptr_init_with_value(malloc(sizeof(int)), NULL);
// 自定义的释放函数
mc_ptr p3 = mc_ptr_init_with_value(malloc(sizeof(int)), (on_destroy_fn_t)my_free);
p2 = p3->assign(&p3, &p2);
}
Description
Languages
C++
96.5%
C
3.3%
CMake
0.2%