我理解下划线t(_t
)用于标识类型,以及下划线类型(_type
),通常在typedef
语句中。
是否有稍微不同的用法(例如模板的下划线类型,但非模板的下划线)?
为什么它们不用于声明? E.g:
class person_t { };
enum error_t { };
这与下一个关于下划线t的问题不同,因为它还要求下划线类型之间的区别。此外,(明显地)两个后缀都只是惯例(但很明显,为什么它们都在C ++标准中使用)并不明显。例如,std :: size_t vs std :: istream :: pos_type。
答案 0 :(得分:5)
我对第一个问题没有任何答案,我认为C ++标准中只有两种不同的约定。
对于你的第二个问题,我知道在C ++标准中使用_t
或_type
的地方,它们被用作某种底层类型的typedef。例如,uint32_t
是无符号整数类型的typedef,在当前实现上大小为32位。它们从未用于实际类型。
我认为POSIX使用_t
作为实际类型,但这是一个不同的约定,与C ++标准中的使用是分开的。