【发布时间】:2021-03-27 10:03:58
【问题描述】:
我正在开发一个 C 数据结构库,我希望我的代码清晰,没有太多的 cmets 并且仍然可读,但我正在努力命名。
- 我应该使用
sinit()和linit()或stackInit()和listInit()来区分堆栈和列表函数吗? - 保存List的变量应该是
list_t *ls或者list_t *list? - 保存结构中每条数据大小的变量应该是
datasize或dataSize? - 在一个结构中,我有一个指向函数(由用户提供)的指针,该函数将比较两个元素,它应该是
cmp还是compare?
我知道所有这些问题大部分都是一样的,但我需要让代码中的所有案例都清楚。
【问题讨论】:
-
这是一个基于意见的问题,不适合 StackOverflow 的问答形式,因为确实没有正确答案。只要确保你的函数名称一目了然,坚持一种大小写风格(例如camelCase vs snake_case),不要担心容易理解的常用缩写如
cmp等。 -
另外,我建议您甚至不要尝试在 C 标准库中复制一些 (IMO) 奇怪的名称/命名样式(尤其是在
string.h中出于某种原因)(例如strstr、strpbrk、alloca、strcspn等)如果不使用谷歌搜索功能的目的,将很难理解。 -
C 标准库函数名称的原因是,过去编译器可能只使用标识符的前 8 个字符来区分函数……但自中世纪以来,C 实际上要求任何实现将考虑至少 31 个第一个字符。
-
@AnttiHaapala:所需的数量从来不是八个字符。在 1990 C 标准中为 6 个,在 1999 C 标准中为 31 个。我隐约记得 IBM 操作系统模块名称有一些命名方案以适应六个字符的限制。
-
@EricPostpischil 6? :D 我的立场是正确的...6 significant initial characters in an external identifier
标签: c coding-style naming-conventions naming