模块和文件组织:从 .h/.c 到 mod
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。第一层可以这样看: