通用C语言编码规范问答总结

命名相关

Q: 文件命名应该使用什么风格?

A: 源文件使用小写字母和下划线,如 string_utils.cmemory_pool.c。头文件对应,如 string_utils.h

Q: 公共函数和静态函数的命名区别是什么?

A: 公共函数使用 snake_case 并加模块前缀,如 memory_pool_init()。静态函数使用下划线前缀或模块内前缀,如 _validate_parameters()

Q: 全局变量如何命名?

A: 使用 g_ 前缀,如 g_instance_countg_system_ready

类型命名

Q: 结构体、枚举、联合体后缀是什么?

A: 结构体_t 后缀,如 buffer_t;枚举用 _e 后缀,成员大写,如 status_e;联合体用 _u 后缀,如 register_value_u

格式化

Q: 缩进和行长度有什么要求?

A: 使用4个空格缩进,不使用Tab。每行最多80个字符(规范建议),长行适当折断。

Q: 大括号风格是什么?

A: K&R风格:函数大括号另起一行,控制结构大括号不另起一行。

函数设计

Q: 函数参数传递的约定是什么?

A: 输入参数使用 const;输出参数使用指针;大结构体通过指针传递。

Q: 返回值的约定是什么?

A: 错误码返回:0表示成功,负值表示错误。布尔返回值使用 bool 类型,函数名以 is_has_can_ 等开头。