Crate

1

模块和文件组织:从 .h/.c 到 mod

4 分钟

C 项目常用 .h 和 .c 分工:

packet.h   -> 对外声明结构体、函数、宏
packet.c   -> 实现函数,隐藏内部 helper
main.c     -> include packet.h 后调用公开函数

例如:

/* packet.h */
int packet_parse(const uint8_t *data, size_t len, struct Packet *out);

/* packet.c */
static int parse_header(const uint8_t *data, size_t len);

int packet_parse(const uint8_t *data, size_t len, struct Packet *out)
{
    /* ... */
}

Rust 也要区分文件、内部实现和公开 API,但模型不是 #include。第一层可以这样看:

阅读更多