1
pathletboy 2015-12-19 11:43:29 +08:00
答案是随便,只要你一个项目 /一个团队中,命名风格保持一致就可以。
|
2
luohaha OP @pathletboy 应该是这样。
|
3
halibut735 2015-12-20 14:15:30 +08:00
我一直以为_t 是 type 的意思。。
|
4
FrankHB 2015-12-20 14:37:54 +08:00
http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
包含任意 POSIX 头(文件)的翻译单元的文件作用域内保留_t 后缀作为外部链接的标识符(给 POSIX 标准或实现),所以你要 strict conforming to POSIX 自然不能随便用,否则一旦实现提供了扩展或者更新了使用的 POSIX 版本就可能冲突,慢慢重构去吧…… 但如果你的项目本身就是在实现 POSIX 或者 ISO C ,自行添加扩展当然是允许的(兼容性问题自负),如: https://www.cygwin.com/ml/cygwin/2009-08/msg00376.html ISO C 没有保留后缀只是提供了一些_t 的名称,所以不管 POSIX 就无所谓。 题外话, C++的成员因为类和非全局命名空间都有单独的作用域而不是 C 那种名称空间(name space) 来区分,所以不受类似的限制,只是全局命名空间以及 ISO C 的保留标识符限制仍然类似;除此以外不踩到宏的坑就能无视。 |
5
FrankHB 2015-12-20 14:44:08 +08:00 1
因为基本上_t 都是文件作用域外部名称,所以你临时性地在块内 typedef 一下_t 的用法是不受限制的。不过排除了最有用的用法,似乎也没多大卵用就是了……
@halibut735 _t 约定俗成也就是 type 的意思。 不过最近似乎有越用越集中的趋势,像 ISO C++ 14 已经到处后缀_t 表示 typename *::type 了……甚至还有直接当 alias template 的: https://github.com/ericniebler/range-v3/blob/4ae2b5bd7b36ce2281f34abb40dab0e88f81e519/include/meta/meta.hpp#L147 |
6
cortexm3 2015-12-20 20:32:40 +08:00
这东西看公司的编码规范了吧
|