C / C ++下划线t / type(_t / _type)和类名?

时间:2015-09-11 11:45:08

标签: c++ c typedef

我理解下划线t(_t)用于标识类型,以及下划线类型(_type),通常在typedef语句中。

  1. 是否有稍微不同的用法(例如模板的下划线类型,但非模板的下划线)?

  2. 为什么它们不用于声明? E.g:

    class person_t { };
    enum error_t { };
    
  3. 这与下一个关于下划线t的问题不同,因为它还要求下划线类型之间的区别。此外,(明显地)两个后缀都只是惯例(但很明显,为什么它们都在C ++标准中使用)并不明显。例如,std :: size_t vs std :: istream :: pos_type。

1 个答案:

答案 0 :(得分:5)

我对第一个问题没有任何答案,我认为C ++标准中只有两种不同的约定。

对于你的第二个问题,我知道在C ++标准中使用_t_type的地方,它们被用作某种底层类型的typedef。例如,uint32_t是无符号整数类型的typedef,在当前实现上大小为32位。它们从未用于实际类型。

我认为POSIX使用_t作为实际类型,但这是一个不同的约定,与C ++标准中的使用是分开的。