根据 this stack overflow answer ,类型名称上的“_t”后缀在 C 中保留。当使用 typedef
创建新的不透明类型时,我习惯于在名称中有某种指示这是一种类型。通常我会使用类似 hashmap_t
的东西,但现在我需要别的东西。
C 中的类型是否有任何标准的命名方案?在其他语言中,像 Hashmap
这样使用 CapsCase 很常见,但我看到的很多 C 代码根本不使用大写。 CapsCase 也可以很好地与库前缀配合使用,例如 XYHashmap
。
那么在 C 中命名类型是否有通用的规则或标准?
最佳答案
是的,如果您包含任何 POSIX header ,POSIX 会保留以 _t
结尾的名称,因此建议您在理论上远离这些 header 。我从事的项目在过去二十年左右的时间里与此类名称发生过两三次冲突。您可以通过使用公司前缀(例如您公司的 TLA 和下划线)或使用大小写混合的名称(以及 _t
后缀)来最大程度地降低冲突风险;我见过的所有碰撞都是简短且全小写的(dec_t
、loc_t
、...)。
除了系统提供(和系统保留)的_t
后缀外,没有特定的广泛使用的约定。其中一种混合大小写系统(camelCase 或 InitialCaps)运行良好。系统前缀也很有效 - 更好的图书馆往往会注意这些。
如果您决定使用小写字母和 _t
后缀,请确保您使用的名称足够长,并认真检查 POSIX 标准、您使用的主要平台以及您使用的任何平台认为您可以继续努力避免不必要的冲突。当您向客户发布一些名称 example_t
然后发现在某些新平台上存在冲突时,最糟糕的问题就来了。然后你必须考虑让客户更改他们的代码,他们总是不愿意这样做。最好预先避免问题。
关于c - 在 C 中命名类型时使用什么样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1990797/